C ++中的copysign()函数接受两个参数,并返回一个值,该值具有第一个参数的大小和第二个参数的符号。
该函数在<cmath>头文件中定义。
double copysign(double x, double y); float copysign(float x, float y); long double copysign(long double x, long double y); Promoted copysign(Type1 x, Type2 y); // Additional overloads for arithmetic types
从C ++ 11开始,如果传递给copysign()的参数为long double,则返回类型Promoted为long double。如果不是,则返回类型Promoted为double。
x:带有结果值大小的值。
y:带有结果值符号的值。
copysign()函数返回将参数y的符号赋予x的数据。
#include <iostream> #include <cmath> using namespace std; int main() { double x = 34.15, y = -13.0, result; result = copysign(x, y); cout << "copysign(" << x << "," << y << ") = " << result << endl; return 0; }
运行该程序时,输出为:
copysign(34.15,-13) = -34.15
#include <iostream> #include <cmath> using namespace std; int main() { double x = 34.15, result; int y = -54; result = copysign(x, y); cout << "copysign(" << x << "," << y << ") = " << result << endl; return 0; }
运行该程序时,输出为:
copysign(34.15,-54) = -34.15