std::numeric_limits<T>:: quiet_NaN
|
static
T quiet_NaN
(
)
throw
(
)
;
|
(C++11 이전) | |
|
static
constexpr
T quiet_NaN
(
)
noexcept
;
|
(C++11 이후) | |
부동 소수점 타입
T
로 표현되는 특수 값 "quiet
not-a-number
"를 반환합니다.
std::
numeric_limits
<
T
>
::
has_quiet_NaN
==
true
인 경우에만 의미가 있습니다. 부동 소수점 숫자의 가장 일반적인 이진 표현인 IEEE 754에서, 지수부의 모든 비트가 설정되고 가수부의 적어도 하나의 비트가 설정된 모든 값은 NaN을 나타냅니다. 가수부의 어떤 값이 quiet NaN 또는 signaling NaN을 나타내는지, 그리고 부호 비트가 의미 있는지 여부는 구현에 따라 정의됩니다.
목차 |
반환값
T
|
std:: numeric_limits < T > :: quiet_NaN ( ) |
| /* 비전문화 */ | T ( ) |
| bool | false |
| char | 0 |
| signed char | 0 |
| unsigned char | 0 |
| wchar_t | 0 |
| char8_t (C++20 이후) | 0 |
| char16_t (C++11 이후) | 0 |
| char32_t (C++11 이후) | 0 |
| short | 0 |
| unsigned short | 0 |
| int | 0 |
| unsigned int | 0 |
| long | 0 |
| unsigned long | 0 |
| long long (C++11 이후) | 0 |
| unsigned long long (C++11 이후) | 0 |
| float | 구현 정의 ( NAN 일 수 있음) |
| double | 구현 정의 |
| long double | 구현 정의 |
참고 사항
NaN은 자기 자신과도 절대 동일하게 비교되지 않습니다. NaN을 복사하면 비트 표현이 보존되지 않을 수 있습니다.
예제
NaN을 생성하는 여러 가지 방법 (출력 문자열은 컴파일러에 따라 다름):
#include <iostream> #include <limits> #include <cmath> int main() { std::cout << std::numeric_limits<double>::quiet_NaN() << ' ' // nan << std::numeric_limits<double>::signaling_NaN() << ' ' // nan << std::acos(2) << ' ' // nan << std::tgamma(-1) << ' ' // nan << std::log(-1) << ' ' // nan << std::sqrt(-1) << ' ' // -nan << 0 / 0.0 << '\n'; // -nan std::cout << "NaN == NaN? " << std::boolalpha << ( std::numeric_limits<double>::quiet_NaN() == std::numeric_limits<double>::quiet_NaN() ) << '\n'; }
가능한 출력:
nan nan nan nan nan -nan -nan NaN == NaN? false
참고 항목
|
[static]
|
부동 소수점 타입이 특수 값 "quiet not-a-number"(NaN)을 표현할 수 있는지 식별합니다
(public static member constant) |
|
[static]
|
주어진 부동 소수점 타입의 signaling NaN 값을 반환합니다
(public static member function) |
|
(C++11)
(C++11)
(C++11)
|
not-a-number (NaN)
(function) |
|
(C++11)
|
주어진 숫자가 NaN인지 확인합니다
(function) |