std::isnormal
Определено в заголовке <cmath> | ||
|---|---|---|
| (1) | ||
bool isnormal( float num ); bool isnormal( double num ); bool isnormal( long double num ); |
(с C++11) (до C++23) | |
constexpr bool isnormal( /* floating-point-type */ num ); | (с C++23) | |
| Дополнительные перегрузки | ||
Определено в заголовке <cmath> | ||
template< class Integer > bool isnormal( Integer num ); | (A) | (с C++11) (constexpr с C++23) |
1) Определяет, является ли заданное число с плавающей запятой
num нормальным, то есть ни нулём, ни субнормальным, ни бесконечностью, ни NaN. Библиотека предоставляет перегрузки для всех типов чисел с плавающей запятой без квалификаторов cv в качестве типа параметра num.(с C++23)
A) Дополнительные перегрузки предоставляются для всех целочисленных типов, которые рассматриваются как
double.Параметры
| num | - | значение с плавающей запятой или целое число |
Возвращаемое значение
true если num является нормальным, false в противном случае.
Примечания
Дополнительные перегрузки не обязательно должны быть предоставлены точно как (A). Они должны быть достаточными для того, чтобы для их аргумента num целочисленного типа std::isnormal(num) имело тот же эффект, что и std::isnormal(static_cast<double>(num)).
Пример
#include <cfloat>
#include <cmath>
#include <iostream>
int main()
{
std::cout << std::boolalpha
<< "isnormal(NaN) = " << std::isnormal(NAN) << '\n'
<< "isnormal(Inf) = " << std::isnormal(INFINITY) << '\n'
<< "isnormal(0.0) = " << std::isnormal(0.0) << '\n'
<< "isnormal(DBL_MIN/2.0) = " << std::isnormal(DBL_MIN / 2.0) << '\n'
<< "isnormal(1.0) = " << std::isnormal(1.0) << '\n';
}Вывод:
isnormal(NaN) = false isnormal(Inf) = false isnormal(0.0) = false isnormal(DBL_MIN/2.0) = false isnormal(1.0) = true
См. также
|
(C++11) | категоризирует данное значение с плавающей запятой (функция) |
|
(C++11) | проверяет, имеет ли данное число конечное значение (функция) |
|
(C++11) | проверяет, является ли данное число бесконечным (функция) |
|
(C++11) | проверяет, является ли данное число NaN (функция) |
C документация для isnormal |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/math/isnormal