【发布时间】:2020-05-08 12:40:26
【问题描述】:
我碰巧知道“SEK”(瑞典货币)货币应该如何在“SE”(瑞典)语言环境中以“sv”(瑞典)语言格式化。它应该使用数千个分隔符的句点。但是,下面的最小代码示例将显示 PHP 以空格而不是千位分隔符的句点输出它。它确实得到正确的逗号(用于十进制字符)以及最后的“kr”,所以我不知道该怎么做:
// 代码示例 #1(正常工作):
$a = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
var_dump($a->formatCurrency(123456789.987, 'USD'));
Expected output:
$123,456,789.99
Actual output:
$123,456,789.99
// 代码示例 #2(似乎无法正常工作):
$a = new \NumberFormatter('sv_SE', \NumberFormatter::CURRENCY);
var_dump($a->formatCurrency(123456789.987, 'SEK'));
Expected output:
123.456.789,99 kr
Actual output:
123 456 789,99 kr
这可能有什么原因?令人沮丧的是它“几乎”做对了。
【问题讨论】:
-
这个错误报告和你的bugs.php.net/bug.php?id=75371一样吗?
-
向我们办公室的常驻瑞典人询问 - 她同意 PHP 在瑞典的货币格式(即千位分隔符的空格)......就像宜家一样。您的格式看起来像在欧洲大陆(NL/DE/FR...)而不是瑞典使用的格式...
-
@vivek_23 好吧,我没有归档,但似乎相关。
-
@CD001 我应该提到的是,在瑞典,非货币数字被格式化为 PHP 格式,但货币总和使用千位分隔符的句点。
-
只需在产生的数字中使用带有点的空格
str_replace()。
标签: php number-formatting numberformatter format-currency