2014-10-28 29 views
14

使用Node.js的,我计算表达式:为什么JavaScript中的0小于Number.MIN_VALUE?

0 < Number.MIN_VALUE 

令我惊讶的是,这将返回true。这是为什么?并且:我如何才能获得可用于比较的预计最小数量?

+2

'Number.MIN_SAFE_INTEGER' – 2014-10-28 17:32:22

+0

@Vohuman:但不是零大于所有负数? – dandavis 2014-10-28 17:32:30

+0

Node.js 0.10.x中的Number.MIN_SAFE_INTEGER是未定义的。 – 2014-10-28 17:38:02

回答

24

Number.MIN_VALUE5e-324,即可以在浮点精度内表示的最小正数,即,它可以接近于零。它定义了漂浮物给你的最佳分辨率。

现在整体最小值为Number.NEGATIVE_INFINITY,尽管这在严格意义上并不是真正的数字。

+1

感谢您解释行为*和*指出一个可行的选择:-) – 2014-10-28 17:40:52

+0

我不敢相信我真的不得不看这个了解我的代码为什么错了。我发誓,JavaScript,有时候...... – Felipe 2018-01-17 01:38:13

1

由于Number.MIN_VALUE = 5e-324 = 5 x 10^-324和它的更大0(稍大一点)。
了解更多here

+0

Node.js 0.10.x中的Number.MIN_SAFE_INTEGER是未定义的。 – 2014-10-28 17:38:45

+0

刚刚更新了我的答案.. – 2014-10-28 17:39:41

1

Number.MIN_VALUE相当于5E-324,其是大于0

0

使用-Number.MAX_VALUE代替Number.MIN_VALUE进行比较:

0 > -Number.MAX_VALUE返回true