学习intval中遇到的问题:
$r = 0.1;
for($a = 1; $a < 10; $a++){
$r += 0.1;
echo "<br />intval('$r') = ".intval($r);
}
打印出结果 intval('1') = 0;
========================
如果我 初始化 $r = 0.8;
累加到1时;打印出结果 intval('1') = 1;
打印结果:
intval('0.2') = 0
intval('0.3') = 0
intval('0.4') = 0
intval('0.5') = 0
intval('0.6') = 0
intval('0.7') = 0
intval('0.8') = 0
intval('0.9') = 0
intval('1') = 1
========================
我用javascript写了一下0.1累加0.1 的程序
<script>
var str=0.1;
var bb="";
for(var i=1;i<20;i++){
str +=0.1;
bb += "<br />('"+str+"') ";
}
document.getElementById("aa").innerHTML=bb;
</script>
得出的结果很吃惊;
('0.2')
('0.30000000000000004')
('0.4')
('0.5')
('0.6')
('0.7')
('0.7999999999999999')
('0.8999999999999999')
('0.9999999999999999')
('1.0999999999999999')
('1.2')
('1.3')
('1.4000000000000001')
('1.5000000000000002')
('1.6000000000000003')
('1.7000000000000004')
('1.8000000000000005')
('1.9000000000000006')
('2.0000000000000004')
这个估计只能用汇编语言解释了
有没有汇编的高手给指点一下