PHP中的数字格式(货币)

问题描述 投票:0回答:2

我正在尝试格式化不带小数点或逗号的数字,我尝试了number_format()和money_format(),但似乎无法获得所需的结果。


number_format($ item-> amount,2)

结果:14,995.00


money_format(“%i”,$ item->金额)

结果:14,995.00


我想正确格式化以下数字。

14995必须为£1,499.50

6795必须为£67.95

获得以上结果的最佳方法是什么?

php numbers currency
2个回答
0
投票
setlocale(LC_MONETARY, 'en_GB.UTF-8'); // cchange if needed
echo money_format('%n', 6795);

返回

£6,795.00

对我来说,这样应该行得通。正如我在评论中提到的那样,您可能无法同时将代码14995显示为1,499.50(除以10)和6795显示为67.95(除以100),所以我建议相应地重构代码。


0
投票

使用brick/money(免责声明:我是作者):

use Brick\Money\Money;

$money = Money::ofMinor(6795, 'GBP');
echo $money->formatTo('en_GB'); // £67.95
© www.soinside.com 2019 - 2024. All rights reserved.