函数
<cmath> <ctgmath>

copysign

     double copysign  (double x     , double y);      float copysignf (float x      , float y);long double copysignl (long double x, long double y);
     double copysign (double x     , double y);      float copysign (float x      , float y);long double copysign (long double x, long double y);     double copysign (Type1 x      , Type2 y);       // additional overloads
复制符号
返回一个值,其大小(magnitude)与 x 相同,符号与 y 相同。

头文件 <tgmath.h> 提供了此函数的类型通用宏版本。
此头文件 (<cmath>) 为算术类型Type1Type2)的其他组合提供了额外的重载:这些重载在计算前会有效地将其参数转换为 double,除非至少有一个参数的类型是 long double(在这种情况下,两者都被转换为 long double)。

参数

x
提供结果值大小(magnitude)的值。
y
提供结果值符号的值。

返回值

一个值,其大小(magnitude)与 x 相同,符号与 y 相同。

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* copysign example */
#include <stdio.h>      /* printf */
#include <math.h>       /* copysign */

int main ()
{
  printf ("copysign ( 10.0,-1.0) = %f\n", copysign( 10.0,-1.0));
  printf ("copysign (-10.0,-1.0) = %f\n", copysign(-10.0,-1.0));
  printf ("copysign (-10.0, 1.0) = %f\n", copysign(-10.0, 1.0));

  return 0;
}

输出

copysign ( 10.0,-1.0) = -10.0
copysign (-10.0,-1.0) = -10.0
copysign (-10.0, 1.0) = 10.0


另见