从循环

时间:2015-04-24 10:19:12

标签: javascript

我正在学习Javascript而没有得到我想要的输出。如果你能纠正我的想法,我会很有帮助。

这是我的简单代码:

<script>
window.onload = myFunction ;
function myFunction(){
 var i = 0 ;
 var counter = 1 ;
 while(i < counter){
  alert(counter);
  counter = counter - 0.1 ;
 }
}
</script>

我想要的输出:

1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1

但实际输出:

1
0.9
0.8
0.7000000000000001
0.6000000000000001
0.5000000000000001
0.40000000000000013
0.30000000000000016
0.20000000000000015
0.10000000000000014
1.3877787807814457e-16

1 个答案:

答案 0 :(得分:5)

这是由浮点算术运算引起的。您可以使用toFixed

对浮动进行舍入

将您的代码更新为

window.onload = myFunction ;
function myFunction(){
 var i = 0 ;
 var counter = 1 ;
 while(i < counter){
  alert(counter);
  counter = (counter - 0.1).toFixed(1) ;
 }
}