Подтвердить что ты не робот

Что такое inf и nan?

Просто вопрос, который я немного смущен о

Итак, я возился с float('inf') и задавался вопросом, для чего он используется.

Также я заметил, что если я добавлю -inf + inf, я получаю nan, это то же самое, что и Zero или нет.

Я смущен тем, что использует эти два значения.

Также, когда я делаю nan - inf, я не получаю -inf Я получаю nan Я уверен, что все это довольно просто, но я наткнулся на них и не знал, что они делают.

4b9b3361

Ответ 1

inf - бесконечность - значение, большее любого другого значения. -inf поэтому меньше любого другого значения.

nan означает Not A Number, и это не равно 0.

Хотя положительную и отрицательную бесконечность можно считать симметричной относительно 0, то это же можно сказать для любого значения n, что означает, что результат добавления двух выходов nan. Эта идея обсуждается в этом вопросе math.se.

Поскольку nan (буквально) не является числом, вы не можете делать с ним арифметику, поэтому результат второй операции также не является числом (nan)

Ответ 2

Inf - бесконечность, это число "больше, чем все остальные числа". Попробуйте вычесть все, что вы хотите от него, это не уменьшится. Все числа < Inf. -Inf похож, но меньше, чем все.

NaN означает не-число. Если вы попытаетесь выполнить вычисления, которые просто не имеют смысла, вы получите NaN. Inf - Inf является одним из таких вычислений. Обычно NaN используется только для обозначения того, что некоторые данные отсутствуют.

Ответ 3

nan означает "не число", значение с плавающей точкой, которое вы получаете, если выполняете расчет, результат которого не может быть выражен в виде числа. Любые вычисления, выполненные с помощью nan, также приведут к nan.

inf означает бесконечность.

Например:

>>> 2*float("inf")
inf
>>> -2*float("inf")
-inf
>>> float("inf")-float("inf")
nan

Ответ 4

Вы говорите:

когда я делаю nan - inf, я не получаю -inf, я получаю nan

Это связано с тем, что любая операция, содержащая nan в качестве операнда, вернет nan.

Сравнение с nan вернет неупорядоченный результат.

>>> float('Inf') == float('Inf')
True
>>> float('NaN') == float('NaN')
False