2013-07-16 104 views
1

我写了一个简单计算的快速JavaScript。当我运行脚本它有一个奇怪的输出,我无法解释......乘法时产生的奇怪JavaScript输出

剧本,在其最基本的形式是:

for (var a=0;a<100;a++) { 
    var b= 3.6*a 
    document.write(b + "<br />"); 
} 

这里的演示:http://jsfiddle.net/uKa2G/

预计我会得到直接的单数或无十进制答案,但每隔几行就会有一个巨大的小数。

如果有人可以解释为什么它将不胜感激。

+4

它真的'我'或'a',或者你是懒惰的? LOL – vee

+0

不要介意当我输入int问题输入框时按下错误的键^^''我'应该是'a',它仍然混乱。 – Phinet

+0

答案很简单,因为浮点算术(即非整数算术)具有一定的不准确性,因为计算机通常只接近内存中浮点数的值(不像整数,它可以建模为精确的值)。 –

回答

0

如果您希望没有小数,那么您必须parseInt()

for (var a=0;a<100;a++) { 
    var b= 3.6*a; 
    console.log(parseInt(b)); 
} 
+0

@保罗错过了。感谢您指出它。 – Praveen

+1

没问题。我没有downvote它,但可能OP是想知道答案像320.40000000000003和为什么不是320.4 – Paul

+0

Thankyou真的有效! – Phinet