php intval的测试代码发现问题
author:一佰互联 2019-05-01 click:205
<?php
$o = 0.1;
for($a = 1; $a < 100; $a++){
$o += 0.1;
echo "<br />intval("$o") = ".intval($o);
if(intval($o)){
print(" true");
}else{
print(" false");
}
}
?>
结果:
intval("0.2") = 0 false
intval("0.3") = 0 false
intval("0.4") = 0 false
intval("0.5") = 0 false
intval("0.6") = 0 false
intval("0.7") = 0 false
intval("0.8") = 0 false
intval("0.9") = 0 false
intval("1") = 0 false
intval("1.1") = 1 true
intval("1.2") = 1 true
intval("1.3") = 1 true
intval("1.4") = 1 true
intval("1.5") = 1 true
intval("1.6") = 1 true
intval("1.7") = 1 true
intval("1.8") = 1 true
intval("1.9") = 1 true
intval("2") = 2 true
intval("2.1") = 2 true
intval("2.2") = 2 true
intval("2.3") = 2 true
intval("2.4") = 2 true
intval("2.5") = 2 true
intval("2.6") = 2 true
intval("2.7") = 2 true
intval("2.8") = 2 true
.....
发现 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