copysign, copysignf, copysignl
来自 cppreference.cn
在头文件 <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
。目录 |
[edit] 参数
x, y | - | 浮点数值 |
[edit] 返回值
如果没有错误发生,则返回大小为 x
,符号为 y
的浮点数值。
如果 x
是 NaN,则返回符号为 y
的 NaN。
如果 y
是 -0,则仅当实现一致地支持算术运算中的带符号零时,结果才为负数。
[edit] 错误处理
此函数不受 math_errhandling
中指定的任何错误的影响。
如果实现支持 IEEE 浮点算术 (IEC 60559),
- 返回的值是精确的(永不引发 FE_INEXACT),并且独立于当前的舍入模式。
[edit] 注解
copysign
是操作 NaN 值符号的唯一可移植方法(要检查 NaN 的符号,也可以使用 signbit)。
[edit] 示例
运行此代码
可能的输出
copysign(1.0,+2.0) = +1.0 copysign(1.0,-2.0) = -1.0 copysign(INFINITY,-2.0) = -inf copysign(NAN,-2.0) = -nan
[edit] 参考
- C23 标准 (ISO/IEC 9899:2024)
- 7.12.11.1 copysign 函数 (p: 待定)
- 7.25 类型泛型数学 <tgmath.h> (p: 待定)
- F.10.8.1 copysign 函数 (p: 待定)
- C17 标准 (ISO/IEC 9899:2018)
- 7.12.11.1 copysign 函数 (p: 待定)
- 7.25 类型泛型数学 <tgmath.h> (p: 待定)
- F.10.8.1 copysign 函数 (p: 待定)
- C11 标准 (ISO/IEC 9899:2011)
- 7.12.11.1 copysign 函数 (p: 255)
- 7.25 类型泛型数学 <tgmath.h> (p: 373-375)
- F.10.8.1 copysign 函数 (p: 529)
- C99 标准 (ISO/IEC 9899:1999)
- 7.12.11.1 copysign 函数 (p: 236)
- 7.22 类型泛型数学 <tgmath.h> (p: 335-337)
- F.9.8.1 copysign 函数 (p: 465)
[edit] 参见
(C99)(C99) |
计算浮点数值的绝对值 (|x|) (函数) |
(C99) |
检查给定数字是否为负数 (函数宏) |
C++ 文档 关于 copysign
|