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
。目录 |
[编辑] 参数
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 函数(p: 待定)
- 7.25 类型通用数学 <tgmath.h> (p: TBD)
- F.10.8.1 copysign 函数(p: 待定)
- C17 标准 (ISO/IEC 9899:2018)
- 7.12.11.1 copysign 函数(p: 待定)
- 7.25 类型通用数学 <tgmath.h> (p: TBD)
- 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)
[编辑] 另请参阅
(C99)(C99) |
计算浮点值的绝对值 (|x|) (函数) |
(C99) |
检查给定数字是否为负数 (函数宏) |
C++ documentation for copysign
|