Namespaces
Variants

isunordered

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
ヘッダー <math.h> で定義
#define isunordered(x, y) /* implementation defined */
(C99以降)

浮動小数点数 x y が非順序(unordered)であるかどうかを判定します。つまり、一方または両方がNaNであり、互いに意味のある比較ができない状態を指します。

目次

パラメータ

x - 浮動小数点値
y - 浮動小数点値

戻り値

x または y のいずれかがNaNの場合、非ゼロの整数値、それ以外の場合は 0 を返す。

#include <math.h>
#include <stdio.h>
int main(void)
{
    printf("isunordered(NAN,1.0) = %d\n", isunordered(NAN, 1.0));
    printf("isunordered(1.0,NAN) = %d\n", isunordered(1.0, NAN));
    printf("isunordered(NAN,NAN) = %d\n", isunordered(NAN, NAN));
    printf("isunordered(1.0,0.0) = %d\n", isunordered(1.0, 0.0));
    return 0;
}

出力例:

isunordered(NAN,1.0) = 1
isunordered(1.0,NAN) = 1
isunordered(NAN,NAN) = 1
isunordered(1.0,0.0) = 0

参考文献

  • C23規格 (ISO/IEC 9899:2024):
  • 7.12.14.6 isunorderedマクロ (p: TBD)
  • F.10.11 比較マクロ (p: TBD)
  • C17規格 (ISO/IEC 9899:2018):
  • 7.12.14.6 isunorderedマクロ (p: TBD)
  • F.10.11 比較マクロ (p: TBD)
  • C11標準 (ISO/IEC 9899:2011):
  • 7.12.14.6 isunorderedマクロ (p: 261)
  • F.10.11 比較マクロ (p: 531)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.12.14.6 isunorderedマクロ (p: 242)

関連項目

指定された浮動小数点値を分類する
(関数マクロ)
(C99)
指定された数値がNaNかどうかをチェックする
(関数マクロ)
C++ documentation for isunordered