php NumberFormater 语言环境

php NumberFormater 语言环境

我的 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::__constructNumberFormatter::CURRENCY

 $MoneyFormat = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY);
 print $MoneyFormat->format(5.12);

相关内容