我的 PHP
$MoneyFormat = new NumberFormatter('en_US.utf8', \NumberFormatter::TYPE_CURRENCY);
print $MoneyFormat->format(5.12);
给我
5.12E0
这是为什么?我当然希望$5.12
如果我将 NumberFormater 中的 locale-param 更改为 de_DE.utf8。我得到
5,12E0
区域设置-a
C
C.UTF-8
de_DE.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
Ubuntu 20.04.2 LTS/PHP 7.4.12
答案1
常数NumberFormatter::__construct
为NumberFormatter::CURRENCY
$MoneyFormat = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
print $MoneyFormat->format(5.12);