2013-09-26 34 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