iOS 18.5下Intl.NumberFormat对小于10000的值不显示千分位分隔符问题咨询
iOS 18.5下Intl.NumberFormat对小于10000的值不显示千分位分隔符问题咨询
最近我把iOS设备升级到18.5版本后,发现Intl.NumberFormat出了个挺让人困惑的问题——当用意大利语(it-IT)地区配置货币格式时,小于10000的数值会丢失千分位分隔符(.),但大于等于10000的数值却能正常显示分隔符,这双重标准的表现实在让人摸不着头脑😂。
我特意回退到iOS 18.0版本测试了同样的代码,结果和18.5完全不一样,预期的千分位分隔符在所有数值上都能正常显示。给大家贴下我的测试代码和两种系统下的输出对比:
const currencyFormatOptions = { style: "currency", currency: "EUR" }; // iOS 18.0下的预期输出 console.log(new Intl.NumberFormat("it-IT", currencyFormatOptions).format(1234)); // "1.234,00 €" console.log(new Intl.NumberFormat("it-IT", currencyFormatOptions).format(12345)); // "12.345,00 €" // iOS 18.5下的实际输出 console.log(new Intl.NumberFormat("it-IT", currencyFormatOptions).format(1234)); // "1234,00 €"(千分位.直接没了) console.log(new Intl.NumberFormat("it-IT", currencyFormatOptions).format(12345)); // "12.345,00 €"(这个倒是正常)
我反复检查过代码逻辑,完全没有改动,就是系统版本升级后才出现的这个差异,目前翻了苹果的官方文档也没看到提到这个行为变更。有没有其他开发者碰到过同样的问题?或者有没有什么办法能强制让Intl.NumberFormat在iOS 18.5下,对所有数值都统一显示千分位分隔符呢?
内容来源于stack exchange
相关产品推荐
相关产品推荐

