copysign、copysignf、copysignl
来自 cppreference.com
定义在头文件 <math.h> 中 |
||
float copysignf( float x, float y ); |
(1) | (自 C99 以来) |
double copysign( double x, double y ); |
(2) | (自 C99 以来) |
long double copysignl( long double x, long double y ); |
(3) | (自 C99 以来) |
定义在头文件 <tgmath.h> 中 |
||
#define copysign(x, y) |
(4) | (自 C99 以来) |
1-3) 生成一个浮点数,其大小为
x
,符号为 y
。4) 类型泛型宏:如果任何参数的类型为 long double,则调用
copysignl
。否则,如果任何参数的类型为整数类型或 double,则调用 copysign
。否则,调用 copysignf
。内容 |
[编辑] 参数
x, y | - | 浮点数 |
[编辑] 返回值
如果未发生错误,则返回大小为 x
、符号为 y
的浮点数。
如果 x
为 NaN,则返回符号为 y
的 NaN。
如果 y
为 -0,则结果只有在实现一致地支持带符号零的算术运算时才为负。
[编辑] 错误处理
此函数不受 math_errhandling
中指定的任何错误影响。
如果实现支持 IEEE 浮点运算(IEC 60559),
- 返回值是精确的(FE_INEXACT 从不引发)并且独立于当前的 舍入模式。
[编辑] 备注
copysign
是操作 NaN 值符号的唯一可移植方法(要检查 NaN 的符号,也可以使用 signbit)。
[编辑] 示例
运行此代码
可能的输出
copysign(1.0,+2.0) = +1.0 copysign(1.0,-2.0) = -1.0 copysign(INFINITY,-2.0) = -inf copysign(NAN,-2.0) = -nan
[编辑] 参考
- C23 标准(ISO/IEC 9899:2024)
- 7.12.11.1 copysign 函数(页:待定)
- 7.25 类型泛型数学 <tgmath.h>(页:待定)
- F.10.8.1 copysign 函数(页:待定)
- C17 标准(ISO/IEC 9899:2018)
- 7.12.11.1 copysign 函数(页:待定)
- 7.25 类型泛型数学 <tgmath.h>(页:待定)
- F.10.8.1 copysign 函数(页:待定)
- C11 标准(ISO/IEC 9899:2011)
- 7.12.11.1 copysign 函数(页:255)
- 7.25 类型泛型数学 <tgmath.h>(页:373-375)
- F.10.8.1 copysign 函数(页:529)
- C99 标准(ISO/IEC 9899:1999)
- 7.12.11.1 copysign 函数(页:236)
- 7.22 类型泛型数学 <tgmath.h>(页:335-337)
- F.9.8.1 copysign 函数(页:465)
[编辑] 另请参阅
(C99)(C99) |
计算浮点值的绝对值 (|x|) (函数) |
(C99) |
检查给定数字是否为负数 (函数宏) |
C++ 文档 for copysign
|