Границы double в C++
Границы double в std::numeric_limits
различают отрицательный предел, наибольшее
положительное и наименьшее положительное.
Функция lowest возвращает наибольшее
по модулю отрицательное число - самый
«нижний» конец шкалы. Функция max
дает наибольшее положительное. Отдельно
функция min у дробных типов означает
наименьшее положительное нормализованное
значение, а не отрицательный предел. Запишем
lowest и max и выведем:
#include <limits>
#include <iostream>
std::cout << std::numeric_limits<double>::lowest() << "\n";
std::cout << std::numeric_limits<double>::max() << "\n";
Для проверки самого маленького положительного
нормализованного числа возьмем min
и выведем его рядом с lowest:
#include <limits>
#include <iostream>
std::cout << std::numeric_limits<double>::min() << "\n";
std::cout << std::numeric_limits<double>::lowest() << "\n";
Выведите на трех строках lowest,
min и max для double.
Сравните lowest и min для
double оператором <.
Выведите 1, если lowest
меньше, иначе 0.