浮点数的精度问题。建议你复习一下相关知识
$temp = 800 * 2.05;
printf('%.14f', $temp); //1639.99999999999977
$temp = intval($temp);
echo $temp; //1639
intval 是直接截尾(去掉小数部分)的,在你这种需要一定精度的场合使用是不合适的
要用有四舍五入功能的 round 才行
$temp = 800 * 2.05;
printf('%.14f', $temp); //1639.99999999999977
$temp = intval($temp);
echo $temp; //1639
intval 是直接截尾(去掉小数部分)的,在你这种需要一定精度的场合使用是不合适的
要用有四舍五入功能的 round 才行
我的需求是相乘的结果我去掉小数点(实际拿计算器算出的结果,而不是用PHP运算的记过)
对于有浮点数的运算,可以使用floatval
$temp = 800 * 2.05;
$temp = floatval($temp); // 1640
echo $temp;
$temp = (int)floatval($temp);
echo $temp;
echo floor(4.3); // 4
echo floor(9.999); // 9