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()函数应该如何定义?
当前回答
$retailPrice = 5.989;
echo number_format(floor($retailPrice*100)/100,2, '.', '');
它将返回5.98而不是四舍五入的数字。
其他回答
另外,
$padded = sprintf('%0.2f', $unpadded); // 520 -> 520.00
$retailPrice = 5.989;
echo number_format(floor($retailPrice*100)/100,2, '.', '');
它将返回5.98而不是四舍五入的数字。
我自己做。
$decimals = 2;
$number = 221.12345;
$number = $number * pow(10, $decimals);
$number = intval($number);
$number = $number / pow(10, $decimals);
你可以使用number_format():
return number_format((float)$number, 2, '.', '');
例子:
$foo = "105";
echo number_format((float)$foo, 2, '.', ''); // Outputs -> 105.00
这个函数返回一个字符串。
下面是strtok和str_pad的另一个解决方案:
$num = 520.00
strtok(round($num, 2), '.') . '.' . str_pad(strtok('.'), 2, '0')