我正在学习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
最佳答案
这是由于浮点算术运算。您可以使用toFixed来进行 float
将您的代码更新为
window.onload = myFunction ;
function myFunction(){
var i = 0 ;
var counter = 1 ;
while(i < counter){
alert(counter);
counter = (counter - 0.1).toFixed(1) ;
}
}