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()函数应该如何定义?
当前回答
下面是strtok和str_pad的另一个解决方案:
$num = 520.00
strtok(round($num, 2), '.') . '.' . str_pad(strtok('.'), 2, '0')
其他回答
无整数
$double = '21.188624';
echo intval($double) . '.' . substr(end(explode('.', $double)), 0, 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
$number = sprintf('%0.2f', $numbers); // 520.89898989 -> 520.89
小数点后会有2个数。
添加到其他答案,因为默认情况下,number_format()将添加数千分隔符。
要删除它,请执行以下操作:
$number = number_format($number, 2, ".", "");
你可以使用PHP printf或sprintf函数:
sprintf的示例:
$num = 2.12;
echo sprintf("%.3f", $num);
您也可以在没有echo的情况下运行相同的程序。例如:sprintf(“%。3 f”,num美元);
输出:
2.120
或者,使用printf:
echo printf("%.2f", $num);
输出:
2.124