Почему в JavaScript меньше, чем Number.MIN_VALUE?

Используя Node.js, я вычисляю выражение:

0 < Number.MIN_VALUE

К моему удивлению, это возвращает true. Почему это? И: Как я могу получить наименьшее количество доступных, для которых сравнение работает так, как ожидалось?

Ответы

Ответ 1

Number.MIN_VALUE - это 5e-324, то есть наименьшее положительное число, которое может быть представлено в точности float, т.е. как можно ближе к нулю. Он определяет наилучшие разрешения, которые дают вам поплавки.

Теперь общее наименьшее значение Number.NEGATIVE_INFINITY, хотя оно не является действительно числовым в строгом смысле.

Ответ 2

Так как Number.MIN_VALUE = 5e-324 = 5 x 10^-324 и больше, чем 0 (немного больше).
Подробнее here.

Ответ 3

Number.MIN_VALUE эквивалентен 5e-324, который больше 0.

Ответ 4

Используйте -Number.MAX_VALUE вместо Number.MIN_VALUE для сравнения:

0 > -Number.MAX_VALUE возвращает true.