$amount = 300; $num = 1.2; $num = $num - 1.1; $num = floatval($num); var_dump($num); $amount = ($num * $amount) / 10; var_dump($amount); var_dump(floor($amount));exit;
结果:
0.1
3
2
结果超乎你想象,PHP的浮点运算,就是这么坑。。。。。。
过了两个小时,找到解决办法,如下:
$amount = 3000; $num = 1.2; $num -= 1; // $amount = $num * $amount / 10; $amount = bcmul($num, $amount) / 10; echo $amount . "\n"; echo floor($amount); exit;
关于bcmul,可以参考这里:
http://php.freehostingguru.com/function.php-bcmul.php