2013-09-26 103 views
0

我簡化我遇到這樣的問題:的Javascript給出不正確的比較結果

上說,Chrome瀏覽器,按F12鍵,然後鍵入以下到控制檯:

a=(0.005/10000).toExponential(); 
"5e-7" 
    b=(0.04/10000).toExponential(); 
"4e-6" 
    a<b 
false 
    a>b 
true 
    a.valueOf < b.valueOf 
false 
    a.valueOf() < b.valueOf() 
false 
    valueOf(a) < valueOf(b) 
false 

在這種情況下,一個< b應該是真的。以上所有布爾值都不正確。怎麼樣?

回答

7

From MDN

toExponential返回表示Number對象指數符號

你比較字符串,而不是數字的字符串。

+0

啊,謝謝,我以爲我用'valueOf()'做了轉換,但顯然''parseFloat()'是要走的路。 – user1032613