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')

其他回答

我自己做。

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

另外,

$padded = sprintf('%0.2f', $unpadded); // 520 -> 520.00

使用PHP number_format()函数。

例如,

$num = 7234545423;
echo number_format($num, 2);

输出将是:

7,234,545,423.00

你可以使用number_format():

return number_format((float)$number, 2, '.', '');

例子:

$foo = "105";
echo number_format((float)$foo, 2, '.', '');  // Outputs -> 105.00

这个函数返回一个字符串。

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

小数点后会有2个数。