C++官网参考链接:https://cplusplus.com/reference/cmath/copysign/
函数
<cmath> <ctgmath>
copysign
C99
double copysign(double x, double y);
float copysignf(float x, float y);
long double copysignl(long double x, long double y);
C++11
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
复制符号
返回一个x的绝对大小和y的符号的值。
C99
头文件<tgmath.h>提供了该函数的泛型类型的宏版本。
C++11
这个头文件(<cmath>)为其他算术类型(arithmetic types)(Type1和Type2)的组合提供了额外的重载:这些重载在计算之前有效地将其实参转换为double类型,除非至少有一个实参是long double类型(在这种情况下,两个实参都被转换为long double类型)。
形参
x
结果值的绝对大小的值。
y
结果值的符号的值。
返回值
返回值具有x的绝对大小,y的符号的值。
用例
/* 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;
}
输出: