名稱空間
變體
操作

copysign, copysignf, copysignl

來自 cppreference.com
< c‎ | 數值‎ | 數學
 
 
 
常用數學函式
函式
基本操作
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大值/最小值操作
(C99)
(C99)
指數函式
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
冪函式
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角函式和雙曲函式
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最近整數浮點數
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮點數操作
(C99)(C99)
(C99)(C23)
(C99)
(C23)(C23)
copysign
(C99)
窄化操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子與量子指數
十進位制重新編碼函式
總序和載荷函式
分類
(C99)
(C99)
(C99)
(C23)
誤差函式和伽馬函式
(C99)
(C99)
(C99)
(C99)
型別
宏常量
特殊浮點值
(C99)(C23)
引數和返回值
錯誤處理
快速操作指示符
 
定義於標頭檔案 <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),

[編輯] 注意

copysign 是操作 NaN 值符號的唯一可移植方法(要檢查 NaN 的符號,也可以使用signbit)。

[編輯] 示例

#include <math.h>
#include <stdio.h>
 
int main(void)
{
    printf("copysign(1.0,+2.0)      = %+.1f\n", copysign(1.0,+2.0));
    printf("copysign(1.0,-2.0)      = %+.1f\n", copysign(1.0,-2.0));
    printf("copysign(INFINITY,-2.0) = %f\n",    copysign(INFINITY,-2.0));
    printf("copysign(NAN,-2.0)      = %f\n",    copysign(NAN,-2.0));
}

可能的輸出

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|)
(函式) [編輯]
檢查給定數字是否為負數
(函式宏) [編輯]
C++ documentation for copysign