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 函式(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
|