You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:00:31