copysign, copysignf, copysignl
From cppreference.net
Common mathematical functions
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<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: TBD)
-
- 7.25 泛型数学 <tgmath.h> (p: TBD)
-
- F.10.8.1 copysign 函数 (p: TBD)
- C17 标准 (ISO/IEC 9899:2018):
-
- 7.12.11.1 copysign 函数集 (p: TBD)
-
- 7.25 泛型数学 <tgmath.h> (p: TBD)
-
- F.10.8.1 copysign 函数集 (p: TBD)
- 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)
|
计算浮点值的绝对值 (
\(\small{|x|}\)
|x|
)
(函数) |
|
(C99)
|
检查给定数字是否为负数
(函数宏) |
|
C++ documentation
for
copysign
|
|