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

其他回答

你可以使用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

这也是我今天遇到的同样的问题,想要四舍五入一个数字,并返回浮点值到一个给定的小数点后,它必须不是字符串(从number_format返回) 答案是

echo对条目(' %。”。decimalPlaces美元。“f”,四舍五入($number, $decimalPlaces);

解决这个问题的另一种更奇特的方法是使用bcadd(),并为$right_operand添加一个虚拟值0。

$formatted_number = bcadd($number, 0, 2);

Try:

$number = 1234545454; 
echo  $english_format_number = number_format($number, 2); 

输出将是:

1,234,545,454.00

无整数

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