Поле infinity
Поле infinity класса numeric_limits возвращает
специальное значение, представляющее положительную бесконечность
для типа данных. Это значение доступно только для типов с плавающей
точкой (float, double, long double).
Для целочисленных типов поле возвращает 0, так как они
не поддерживают представление бесконечности.
Поле не принимает параметров и является статической константой времени компиляции. Его можно использовать для проверки результатов математических операций, которые могут привести к переполнению, например, при делении на ноль.
Синтаксис
numeric_limits<T>::infinity()
Пример
Давайте получим значение бесконечности для типа double
и выведем его на экран:
#include <iostream>
#include <limits>
using namespace std;
int main()
{
double inf = numeric_limits<double>::infinity();
cout << inf << endl;
return 0;
}
Результат выполнения кода:
"inf"
Пример
Давайте проверим, что деление положительного числа на ноль даёт бесконечность:
#include <iostream>
#include <limits>
using namespace std;
int main()
{
double res = 1.0 / 0.0;
double inf = numeric_limits<double>::infinity();
if (res == inf)
{
cout << "Result is infinity" << endl;
}
return 0;
}
Результат выполнения кода:
"Result is infinity"
Пример
Давайте проверим, что для целочисленного типа int
поле infinity возвращает 0:
#include <iostream>
#include <limits>
using namespace std;
int main()
{
int inf = numeric_limits<int>::infinity();
cout << inf << endl;
return 0;
}
Результат выполнения кода:
0
Смотрите также
-
класс
numeric_limits,
который предоставляет информацию о типах данных -
поле
quiet_NaN,
которое возвращает значение "не число" -
поле
max,
которое возвращает максимальное значение типа -
поле
epsilon,
которое возвращает машинную эпсилон