2014-10-28 144 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

相關問題