PHP字符串四舍五入到小数点后两位的正确方法是什么?
$number = "520"; // It's a string from a database
$formatted_number = round_to_2dp($number);
echo $formatted_number;
输出应该是520.00;
round_to_2dp()函数应该如何定义?
PHP字符串四舍五入到小数点后两位的正确方法是什么?
$number = "520"; // It's a string from a database
$formatted_number = round_to_2dp($number);
echo $formatted_number;
输出应该是520.00;
round_to_2dp()函数应该如何定义?
当前回答
$twoDecNum = sprintf('%0.2f', round($number, 2));
四舍五入可以正确地将数字四舍五入,如果四舍五入后恰好只有1位小数,则sprintf会强制将其四舍五入到小数点后2位。
其他回答
另外,
$padded = sprintf('%0.2f', $unpadded); // 520 -> 520.00
$number = sprintf('%0.2f', $numbers); // 520.89898989 -> 520.89
小数点后会有2个数。
http://php.net/manual/en/function.round.php
e.g.
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
解决这个问题的另一种更奇特的方法是使用bcadd(),并为$right_operand添加一个虚拟值0。
$formatted_number = bcadd($number, 0, 2);
使用PHP number_format()函数。