Значение NAN означает не число, а значение IND означает неопределенный номер. Но в чем разница между этими двумя. Как мы можем представлять оба в C ++.
Но в чем разница между этими двумя.
Они оба одно и то же. Некоторые платформы предпочитают отображать не-номер как некоторый вариант NaN
в то время как другие предпочитают отображать его как некоторый вариант IND
,
Как мы можем представлять оба в C ++.
std::numeric_limits<double>::quiet_NaN()
(или же float
или же long double
, Если вы предпочитаете).
Если ваша операция сгенерирует большее положительное число, чем может быть сохранено в двойном, операция вернется 1.#INF
на винде или инф на линуксе
Некоторые операции не имеют математического смысла, например, получение квадратного корня из отрицательного числа. sqrt(-1.0)
а также log(-1.0)
возвратил бы NaN, общий термин для «числа», которое является «не числом».
Windows отображает NaN как -1.#IND
(«IND» для «неопределенного»), в то время как Linux отображает nan
, Другие операции, которые возвращали бы NaN
включают 0/0, 0 * ∞ и ∞ / ∞.