gpt4 book ai didi

php - 使用 numberFormatter 格式化货币

转载 作者:可可西里 更新时间:2023-11-01 13:01:21 26 4
gpt4 key购买 nike

我在使用 php NumberFormatter 类时遇到了一些问题。我希望四舍五入的数字显示时没有任何小数,而有小数的数字要四舍五入到 2 位小数。即

$fmt = new NumberFormatter('nl', NumberFormatter::CURRENCY);
$fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, 0);
$fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, 2);

var_dump($fmt->formatCurrency(15.15, 'EUR')); //Outputs € 15,15
var_dump($fmt->formatCurrency(15, 'EUR')); //Outputs € 15,00

如您所见,最后一个转储输出的是 15,00,但我在这里期望的是 15。每当我使用“完整”区域设置 nl_NL 而不是 nl 时,格式化程序都会按预期运行,但我无法使用它,因为我只有我的区域设置可用的语言.

$fmt = new NumberFormatter('nl_NL', NumberFormatter::CURRENCY);
$fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, 0);
$fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, 2);

var_dump($fmt->formatCurrency(15.15, 'EUR')); //Outputs € 15,15
var_dump($fmt->formatCurrency(15, 'EUR')); //Output € 15

这似乎是 NumberFormatter 中的一个错误,但我真的不知道如何修复它或找出其他解决方法。如果有任何帮助,我将不胜感激。

最佳答案

脏修复:

$formattedCurrency = preg_replace('/,00$/', '', $fmt->formatCurrency(15, 'EUR'));

关于php - 使用 numberFormatter 格式化货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19298267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com