我设置
I18n::setLocale('en_EN');和
I18n::setLocale('de_DE');取决于语言转换。
我发现:
<?=$this->Number->currency($price, 'EUR', ['precision' => 0])?>德文节目
6.900.000欧元
在英语里
6 900 000.00欧元
为什么精度没有得到尊重?有什么我能做的吗?
发布于 2018-08-18 12:30:17
首先,我不认为en_EN是一个有效/受支持的区域设置,您宁愿使用en_US、en_GB、en_CA等。使用无效/不支持的区域设置可能会绊倒格式化程序。
尽管如此,这看起来还是一个可能的错误。在内部,CakePHP使用intl NumberFormatter,而且如果您想格式化一个非给定区域设置的默认货币(例如,en_US语言环境的EUR ),则必须将该货币作为格式化程序上的一个属性应用,在应用该精度之前,CakePHP只将该货币传递给NumberFormatter::formatCurrency()方法。
您可能希望将此报告为over at GitHub问题。
另见http://php.net/manual/en/numberformatter.formatcurrency.php#114376
https://stackoverflow.com/questions/51908287
复制相似问题