isnan
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<math.h>
|
||
|
#define isnan(arg) /* implementation defined */
|
(C99부터) | |
주어진 부동 소수점 숫자 arg 가 NaN(Not-a-Number) 값인지 판단합니다. 이 매크로는 정수 값을 반환합니다.
FLT_EVAL_METHOD 는 무시됩니다: 인수가 해당 타입보다 더 넓은 범위와 정밀도로 평가되더라도, 먼저 해당 의미론적 타입으로 변환된 후 분류가 그 기준에 따라 수행됩니다(이는 평가 타입이 NaN을 지원하지만 의미론적 타입은 지원하지 않는 경우 중요합니다).
목차 |
매개변수
| arg | - | 부동소수점 값 |
반환값
arg 가 NaN이면 0이 아닌 정수 값, 0 을 반환합니다.
참고 사항
다양한 부호 비트와 페이로드를 가진 여러 NaN 값이 존재합니다. 자세한 내용은 nan 을 참조하십시오.
NaN 값은 자기 자신이나 다른 NaN 값과 절대 동등하게 비교되지 않습니다. NaN을 복사하면 비트 패턴이 변경될 수 있습니다.
부동 소수점 값이 NaN인지 테스트하는 또 다른 방법은 자기 자신과 비교하는 것입니다: bool is_nan ( double x ) { return x ! = x ; }
예제
#include <float.h> #include <math.h> #include <stdio.h> int main(void) { printf("isnan(NAN) = %d\n", isnan(NAN)); printf("isnan(INFINITY) = %d\n", isnan(INFINITY)); printf("isnan(0.0) = %d\n", isnan(0.0)); printf("isnan(DBL_MIN/2.0) = %d\n", isnan(DBL_MIN / 2.0)); printf("isnan(0.0 / 0.0) = %d\n", isnan(0.0 / 0.0)); printf("isnan(Inf - Inf) = %d\n", isnan(INFINITY - INFINITY)); }
가능한 출력:
isnan(NAN) = 1 isnan(INFINITY) = 0 isnan(0.0) = 0 isnan(DBL_MIN/2.0) = 0 isnan(0.0 / 0.0) = 1 isnan(Inf - Inf) = 1
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.12.3.4 The isnan 매크로 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.12.3.4 isnan 매크로 (p: TBD)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.12.3.4 isnan 매크로 (p: 236-237)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.12.3.4 The isnan 매크로 (p: 217)
참고 항목
|
(C99)
(C99)
(C99)
|
NaN(숫자가 아님)을 반환합니다
(함수) |
|
(C99)
|
주어진 부동소수점 값을 분류합니다
(함수 매크로) |
|
(C99)
|
주어진 숫자가 유한한 값을 가지는지 확인합니다
(함수 매크로) |
|
(C99)
|
주어진 숫자가 무한한지 확인합니다
(함수 매크로) |
|
(C99)
|
주어진 숫자가 정규(normal)인지 확인합니다
(함수 매크로) |
|
(C99)
|
두 부동소수점 값이 정렬되지 않은 상태인지 확인합니다
(함수 매크로) |
|
C++ documentation
for
isnan
|
|