函式
<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


另見