名稱空間
變體
操作

fdim, fdimf, fdiml

來自 cppreference.com
< c‎ | 數值‎ | 數學
 
 
 
常用數學函式
函式
基本操作
(C99)
(C99)
fdim
(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)
(C23)
(C23)
(C23)
(C23)
量子與量子指數
十進位制重新編碼函式
總序和載荷函式
分類
(C99)
(C99)
(C99)
(C23)
誤差函式和伽馬函式
(C99)
(C99)
(C99)
(C99)
型別
宏常量
特殊浮點值
(C99)(C23)
引數和返回值
錯誤處理
快速操作指示符
 
定義於標頭檔案 <math.h>
float       fdimf( float x, float y );
(1) (C99 起)
double      fdim( double x, double y );
(2) (C99 起)
long double fdiml( long double x, long double y );
(3) (C99 起)
定義於標頭檔案 <tgmath.h>
#define fdim( x, y )
(4) (C99 起)
1-3) 返回 xy 之間的正差值,即,如果 x>y,則返回 x-y,否則(如果 x≤y),返回 +0。
4) 型別泛型宏:如果任何引數具有 long double 型別,則呼叫 fdiml。否則,如果任何引數具有整數型別或具有 double 型別,則呼叫 fdim。否則,呼叫 fdimf

目錄

[編輯] 引數

x, y - 浮點值

[編輯] 返回值

如果成功,返回 xy 之間的正差值。

如果因溢位而發生範圍錯誤,則返回 +HUGE_VAL+HUGE_VALF+HUGE_VALL

如果發生下溢導致的範圍錯誤,返回正確的值(舍入後)。

[編輯] 錯誤處理

錯誤按照 Template:rllpt 中指定的方式報告。

如果實現支援 IEEE 浮點運算 (IEC 60559),

  • 如果任一引數為 NaN,則返回 NaN。

[編輯] 注意

等價於 fmax(x-y, 0),除了 NaN 處理要求。

[編輯] 示例

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
 
int main(void)
{
    printf("fdim(4, 1) = %f, fdim(1, 4)=%f\n", fdim(4,1), fdim(1,4));
    printf("fdim(4,-1) = %f, fdim(1,-4)=%f\n", fdim(4,-1), fdim(1,-4));
    //error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("fdim(1e308, -1e308) = %f\n", fdim(1e308, -1e308));
    if (errno == ERANGE)
        perror("    errno == ERANGE");
    if (fetestexcept(FE_OVERFLOW))
        puts("    FE_OVERFLOW raised");
}

可能的輸出

fdim(4, 1) = 3.000000, fdim(1, 4)=0.000000
fdim(4,-1) = 5.000000, fdim(1,-4)=5.000000
fdim(1e308, -1e308) = inf
    errno == ERANGE: Numerical result out of range
    FE_OVERFLOW raised

[編輯] 參考

  • C23 標準 (ISO/IEC 9899:2024)
  • 7.12.12.1 fdim 函式 (p: TBD)
  • 7.25 型別通用數學 <tgmath.h> (p: TBD)
  • F.10.9.1 fdim 函式 (p: TBD)
  • C17 標準 (ISO/IEC 9899:2018)
  • 7.12.12.1 fdim 函式 (p: 187-188)
  • 7.25 型別通用數學 <tgmath.h> (p: 272-273)
  • F.10.9.1 fdim 函式 (p: 386)
  • C11 標準 (ISO/IEC 9899:2011)
  • 7.12.12.1 fdim 函式 (p: 257)
  • 7.25 型別通用數學 <tgmath.h> (p: 373-375)
  • F.10.9.1 fdim 函式 (p: 530)
  • C99 標準 (ISO/IEC 9899:1999)
  • 7.12.12.1 fdim 函式 (p: 238)
  • 7.22 型別通用數學 <tgmath.h> (p: 335-337)
  • F.9.9.1 fdim 函式 (p: 466)

[編輯] 另請參閱

計算整數值的絕對值 (|x|)
(函式) [編輯]
(C99)(C99)(C99)
確定兩個浮點值中較大的一個
(函式) [編輯]
C++ 文件 用於 fdim