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