CakePHP 3.6数字货币

时间:2018-08-18 11:45:43

标签: cakephp

我设置了

 [HttpPost]
 public IActionResult Index(string uid, string token, List<string> contact)
 {
     foreach (string item in contact) {
         Common.TestEmail(uid, token);
     }

     return View();
 }

I18n::setLocale('en_EN');

取决于语言切换。

我发现:

I18n::setLocale('de_DE');

以德语显示

  

6.900.000€

和英语一样

  

€6,900,000.00

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

1 个答案:

答案 0 :(得分:0)

首先,我认为en_EN不是有效/受支持的语言环境,您宁愿使用en_USen_GBen_CA等。无效/不受支持的语言环境可能会使格式化程序崩溃。

话虽如此,这仍然看起来像是一个可能的错误。 CakePHP在内部使用国际NumberFormatter,并且,如果您想格式化不是给定语言环境默认货币的货币(例如,EUR语言环境为en_US),那货币必须在格式化程序上作为属性应用,应用精度之前,CakePHP只能将货币传递给NumberFormatter::formatCurrency()方法。

您可能想将其报告为问题over at GitHub

另请参见 http://php.net/manual/en/numberformatter.formatcurrency.php#114376