iOS Swift:将Double值转换为巴西雷亚尔(pt-BR)货币格式
正确实现巴西雷亚尔货币格式显示
你需要用NumberFormatter来处理地区化的货币格式化,直接转成NSNumber再插值不会自动应用地区格式,以下是可行的代码:
private var myValue: Double = 1234.56 let formatter = NumberFormatter() // 指定巴西地区的语言环境 formatter.locale = Locale(identifier: "pt-BR") // 设置格式类型为货币 formatter.numberStyle = .currency // 将Double转为NSNumber后格式化,同时处理格式化失败的兜底情况 myLabel.text = formatter.string(from: NSNumber(value: myValue)) ?? "R$ 0,00"
关键细节说明:
Locale(identifier: "pt-BR")会触发巴西地区的格式规则:自动使用雷亚尔符号R$,采用逗号作为小数分隔符、点作为千位分隔符(比如1234.56会显示为R$ 1.234,56).currency样式让格式化器严格按照货币规则处理数值- 用
??设置兜底字符串,避免格式化失败时Label显示空白
如果需要自定义小数位数,可以追加以下配置:
// 强制保留2位小数 formatter.minimumFractionDigits = 2 formatter.maximumFractionDigits = 2
内容的提问来源于stack exchange,提问作者arcobaleno
相关产品推荐
相关产品推荐

