为什么最小值大于零?

Why is the minimal value greater than zero?

我正在测试 JavaScript 中的数字,这时我注意到发生了一些奇怪的事情。

为什么 Number.MIN_VALUE 大于 0?我预计它会是一个非常小的负值。

console.log(Number.MIN_VALUE > 0);

它背后是否有一些数学原理,还是 JavaScript 精度错误?

Number.MIN_VALUE:可表示的最小正数——即最接近零的正数(实际上不是零)。

当您 运行 console.log(Number.MIN_VALUE); 时,您将看到输出为 5e-324

我可能会补充一点,您所期望的可能是 Number.MIN_SAFE_INTEGERNumber.NEGATIVE_INFINITY

Number | Javascript Reference

Number.MIN_VALUE 的值等于 5e-324。这可以在下面显示。

console.log(Number.MIN_VALUE);

如您所见,值为5e-324


这是浮点精度内可以显示的最小正数(浮点精度与 0.1 + 0.2 错误有关)。

这是您最接近 0 的地方。


技术最小值是Number.NEGATIVE_INFINITY

console.log(Number.NEGATIVE_INFINITY);

但是,这并不是真正的“数值”,因为该值为-Infinity,无法用明确的数字表示。