在使用(int)
强制转换变量时,PHP似乎会出现错误的四舍五入。为什么会这样呢?
$multiplier = 100000000;
$value = 0.01020637;
echo (int)($value*$multiplier);
输出:1020636
。(意外的输出结果)
$multiplier = 100000000;
$value = 0.01020637;
echo ($value*$multiplier);
输出结果为:1020637
。(期望得到正确的输出结果)
编辑:情况变得更糟了...
$multiplier = 100000000;
$value = 0.01020637;
echo $temp = ($value*$multiplier);
echo '<br/>';
echo (int)$temp;
输出:
1020637
1020636
($value*multiplier)
表达式将始终解析为整数。将其更改为($value*$multiplier)(int)
是否有帮助?或者只需使用$temp = ($value*$multiplier); $intVal = (int)$temp)
可能会导致预期结果? - bvpx