PHP NumberFormatter小数位数设置失效问题及解决方法
PHP NumberFormatter强制统一隐藏所有货币小数位的解决办法
问题现象
使用PHP的NumberFormatter时,设置setAttribute(NumberFormatter::FRACTION_DIGITS, 0)或NumberFormatter::MAX_FRACTION_DIGITS, 0后,只有与当前地区匹配的货币会隐藏小数部分,切换成其他货币时,该设置会被忽略,小数位依然显示。
解决方案
要让所有货币都强制应用小数位为0的规则,必须先显式指定目标货币,再设置小数位数属性。具体操作是在调用setAttribute设置小数位之前,先执行:
$fmt->setTextAttribute(NumberFormatter::CURRENCY_CODE, $currency);
其中$currency是你要格式化的目标货币代码(比如'USD'、'EUR'等)。
内容的提问来源于stack exchange,提问作者kobliha
相关产品推荐
相关产品推荐

