关于Javascript中parseInt()的澄清

3
parseInt(0.000004); //0 
parseInt(0.0000004);  //4 

为什么第一次使用parseInt()返回0,但如果我在小数点后面增加更多的零,它会返回4?

1
可能是重复的问题:Function parseInt (1/10000000) returns 1. Why? - Qantas 94 Heavy
1个回答

6

这部分原因是因为parseInt()期望其参数为字符串,并首先将任何其他类型的值转换为字符串。

console.log(0.000004.toString());
// "0.000004"

console.log(0.0000004.toString());
// "4e-7"

parseInt()无法识别科学计数法,在这种情况下,它只接受结果字符串中的"4"


谢谢您的回答,但现在又出现了一个新问题,为什么0.000004.toString()被解释为0.000004而不是4e-6? - Akash Goel
1
@AkashGoel 最好在另一个问题上提问(或者谷歌一下)。在评论区进行关于为什么会发生这种情况的长时间讨论是没有效果的。如果答案在评论中,其他人也很难找到他们的问题的答案。 - Sumner Evans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接