CakePHP 3.6数字货币

CakePHP 3.6数字货币,cakephp,Cakephp,我设定 及 取决于语言开关 我发现: I18n::setLocale('de_DE'); 德语节目 690000欧元 用英语说,就像 6900000.00欧元 为什么不尊重精度? 有什么我能做的吗?首先,我不认为en\u en是一个有效的/受支持的区域设置,您宁愿使用en\u US、en\u GB、en\u CA等。使用无效/不受支持的区域设置可能会使格式化程序出错 尽管如此,这看起来仍然是一个可能的bug。CakePHP在内部使用intlNumberFormatter,如果您想要格式化一

我设定

取决于语言开关

我发现:

I18n::setLocale('de_DE');

德语节目

690000欧元

用英语说,就像

6900000.00欧元

为什么不尊重精度?
有什么我能做的吗?

首先,我不认为
en\u en
是一个有效的/受支持的区域设置,您宁愿使用
en\u US
en\u GB
en\u CA
等。使用无效/不受支持的区域设置可能会使格式化程序出错

尽管如此,这看起来仍然是一个可能的bug。CakePHP在内部使用intl
NumberFormatter
,如果您想要格式化一种不是给定区域设置默认货币的货币(例如
EUR
对于
en_US
区域设置),则在应用精度之前,必须将该货币作为格式化程序上的一个属性应用,但是,CakePHP只将货币传递给
NumberFormatter::formatCurrency()
方法

您可能希望将此作为问题报告

另请参见

I18n::setLocale('de_DE');
<?=$this->Number->currency($price, 'EUR', ['precision' => 0])?>