std::copysign
STD::文案
Defined in header | | |
---|---|---|
float copysign( float x, float y | (1) | (since C++11) |
double copysign( double x, double y | (2) | (since C++11) |
long double copysign( long double x, long double y | (3) | (since C++11) |
Promoted copysign( Arithmetic1 x, Arithmetic2 y | (4) | (since C++11) |
1-3%29构成浮点值,其大小为x
以及…的迹象y
...
4%29一组重载或函数模板,用于%281-3%29中未涵盖的所有算术类型参数组合。如果有任何争论积分型,它被铸造成double
.如果有任何争论long double
,则返回类型Promoted
也是long double
,否则返回类型总是double
...
参数
x, y | - | floating point values |
---|
返回值
如果没有出现错误,则浮点值的大小为x
以及…的迹象y
会被归还。
如果x
是南,然后是南y
会被归还。
如果y
是-0,只有当实现在算术操作中一致支持符号零时,结果才是负的。
错误处理
中指定的任何错误均不受此函数的影响。数学[医]错误处理...
如果实现支持ieee浮点算法%28IEC 60559%29,
- 返回值精确为%28
FE_INEXACT
不会引发%29,并且独立于当前舍入方式...
注记
std::copysign
是操作NaN值%28的符号以检查NaN符号的唯一可移植方式,signbit
也可以使用%29。
例
二次
#include <iostream>
#include <cmath>
int main(void)
{
std::cout << "copysign(1.0,+2.0) = " << std::copysign(1.0,+2.0) << '\n'
<< "copysign(1.0,-2.0) = " << std::copysign(1.0,-2.0) << '\n'
<< "copysign(inf,-2.0) = " << std::copysign(INFINITY,-2.0) << '\n'
<< "copysign(NaN,-2.0) = " << std::copysign(NAN,-2.0) << '\n';
}
二次
产出:
二次
copysign(1.0,+2.0) = 1
copysign(1.0,-2.0) = -1
copysign(inf,-2.0) = -inf
copysign(NaN,-2.0) = -nan
二次
另见
abs(float) fabs | absolute value of a floating point value (|x|) (function) |
---|---|
signbit (C++11) | checks if the given number is negative (function) |
C文案文件
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。