将数字从float转换为Int会返回意外答案。

时间:2016-12-09 09:48:13

标签: php int

执行简单的数学运算时,php中的意外结果是以米为单位转换为mm。

$width  = (float)1.0050;
echo 'Width: '.$width.'m';
$width = (int)($width*1000);
echo 'Width:'. $width . 'mm';

这是返回

  

宽度:1.005m
宽度:1004mm

预期结果为1005mm时。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

内部php表示$ width为float值:1.0049999999999999 铸造操作只是在昏迷后剥掉数字,你得到1004。

使用round代替:

round($width * 1000);

答案 1 :(得分:0)

据我所知,(float)anyNumberWithDecimals不会以任何程序语言转换METRIC单位。它进行强制转换,以指定变量的类型。