使用 PHP 格式化数字,使其始终在小数点前有 2 位数字


Format a number with PHP to always have 2 digits before decimal

我正在尝试在 PHP 中格式化一个数字,使其始终在小数点前至少有 2 位,无论我用谷歌搜索/尝试什么,似乎都无法弄清楚。我宁愿只在小数点前没有整数时才这样做。

这将是理想的所需输出,因为我事先不知道数字,它每页都会变化。

0.59 becomes 00.59
1.00 stays 1.00
0.43 becomes 00.43
14.56 stays 14.56

有什么想法吗?

如果数字小于 1,则添加 0:

$res = (($num < 1) ? '0' : '').number_format($num, 2);

这是一种做你想做的事的方法:

$num = 0.342;
$num = number_format(round((float) $num, 2),2);
if ($num < 1) $num = str_pad($num,5,'0',STR_PAD_LEFT);
echo $num;

如果您不在 Windows 上,则此方法有效:

$num = 0.59;
echo trim(money_format("%=0#2.2n", (float)$num));

如果在输出中获取货币符号,则可能还需要添加 ! 标志。

请参阅 php.net/money_format