PHP字符串四舍五入到小数点后两位的正确方法是什么?

$number = "520"; // It's a string from a database

$formatted_number = round_to_2dp($number);

echo $formatted_number;

输出应该是520.00;

round_to_2dp()函数应该如何定义?


当前回答

无整数

$double = '21.188624';
echo intval($double) . '.' . substr(end(explode('.', $double)), 0, 2);

其他回答

添加到其他答案,因为默认情况下,number_format()将添加数千分隔符。

要删除它,请执行以下操作:

$number = number_format($number, 2, ".", "");

我自己做。

$decimals = 2;
$number = 221.12345;
$number = $number * pow(10, $decimals);
$number = intval($number);
$number = $number / pow(10, $decimals);

使用PHP number_format()函数。

$number = sprintf('%0.2f', $numbers); // 520.89898989 -> 520.89

小数点后会有2个数。

无整数

$double = '21.188624';
echo intval($double) . '.' . substr(end(explode('.', $double)), 0, 2);