如何让NumberFormatter显示$而非US$格式的美元货币符号
原因说明
在zh_CN区域配置下,iOS系统默认会为美元货币添加US前缀符号,避免和人民币的¥符号混淆,所以输出结果为US$12.34。
解决方法
直接手动设置NumberFormatter的currencySymbol属性,覆盖系统默认的货币符号即可:
let price = 12.34 as NSNumber let formatter = NumberFormatter() formatter.numberStyle = .currency formatter.currencyCode = "USD" formatter.locale = Locale(identifier: "zh_CN") // 新增以下代码自定义美元符号 formatter.currencySymbol = "$" print(formatter.string(from: price)!) // 输出结果:$12.34
额外提示
- 如果业务中需要处理多种货币类型,仅在货币为美元时设置
currencySymbol属性即可,避免影响欧元、人民币等其他货币的正常展示 - 如果你不需要保留中文区域的数字格式规则,也可以将
locale设置为en_US,此时美元默认符号就是$,但数字的千分位、小数排版规则会适配美国区域习惯,不适用于中文展示场景
内容的提问来源于stack exchange,提问作者bAthi
相关产品推荐
相关产品推荐

