PHP 中的数字格式(金钱)
Number formatting (Money) in PHP
我正在尝试格式化没有小数点或逗号的数字,我已经尝试了 number_format() 和 money_format() 并且似乎无法获得我需要的结果。
number_format($item->amount,2)
结果:14,995.00
money_format("%i", $item->amount)
结果:14,995.00
我想要正确格式化以下数字。
14995 需要 149.95 英镑
6795 需要 67.95 英镑
获得上述结果的最佳方法是什么?
setlocale(LC_MONETARY, 'en_GB.UTF-8'); // change if needed
echo money_format('%n', 6795 / 100);
returns
67.95 英镑
对我来说,应该可行。正如我在评论中提到的,您可能无法获得将 14995 显示为 1,499.50(除以 10)和 6795 显示为 67.95(除以 100)的代码,因此我建议相应地重构代码。
使用brick/money(免责声明:我是作者):
use Brick\Money\Money;
// Instantiating from a decimal amount
$money = Money::of('67.95', 'GBP');
echo $money->formatTo('en_GB'); // £67.95
// Instantiating from a minor amount (cents)
$money = Money::ofMinor(6795, 'GBP');
echo $money->formatTo('en_GB'); // £67.95
我正在尝试格式化没有小数点或逗号的数字,我已经尝试了 number_format() 和 money_format() 并且似乎无法获得我需要的结果。
number_format($item->amount,2)
结果:14,995.00
money_format("%i", $item->amount)
结果:14,995.00
我想要正确格式化以下数字。
14995 需要 149.95 英镑
6795 需要 67.95 英镑
获得上述结果的最佳方法是什么?
setlocale(LC_MONETARY, 'en_GB.UTF-8'); // change if needed
echo money_format('%n', 6795 / 100);
returns
67.95 英镑
对我来说,应该可行。正如我在评论中提到的,您可能无法获得将 14995 显示为 1,499.50(除以 10)和 6795 显示为 67.95(除以 100)的代码,因此我建议相应地重构代码。
使用brick/money(免责声明:我是作者):
use Brick\Money\Money;
// Instantiating from a decimal amount
$money = Money::of('67.95', 'GBP');
echo $money->formatTo('en_GB'); // £67.95
// Instantiating from a minor amount (cents)
$money = Money::ofMinor(6795, 'GBP');
echo $money->formatTo('en_GB'); // £67.95