php intval的测试代码发现问题
2018-09-07 21:40
<?php
$o=0.1;
for($a=1;$a<100;$a++){
$o+=0.1;
if(intval($o)){
print(true);
}else{
print(false);
}
}
?>
结果:
intval(0.2)=0false
intval(0.3)=0false
intval(0.4)=0false
intval(0.5)=0false
intval(0.6)=0false
intval(0.7)=0false
intval(0.8)=0false
intval(0.9)=0false
intval(1)=0false
intval(1.1)=1true
intval(1.2)=1true
intval(1.3)=1true
intval(1.4)=1true
intval(1.5)=1true
intval(1.6)=1true
intval(1.7)=1true
intval(1.8)=1true
intval(1.9)=1true
intval(2)=2true
intval(2.1)=2true
intval(2.2)=2true
intval(2.3)=2true
intval(2.4)=2true
intval(2.5)=2true
intval(2.6)=2true
intval(2.7)=2true
intval(2.8)=2true
.....
发现intval(1)竟然返回0
不测试不会知道的
假象:
print(<br/>intval(\1.0\)=.intval(1.0));
print(<br/>intval(1.0)=.intval(1.0));
print(<br/>intval(1)=.intval(1));
intval(1.0)=1
intval(1.0)=1
intval(1)=1