swift数字转货币格式前缀自动加¥|$

1、Number “1234.568”想转成货币形式 “¥1,234.57”

extension Formatter {
    static let withSeparator: NumberFormatter = {
        let formatter = NumberFormatter()
        formatter.numberStyle = .currency
        return formatter
    }()
}

// 打印结果SHP 1,234.57
print(Formatter.withSeparator.string(from: "1234.568")

上述得出的结果却是 “SHP 1,234.57”

2、解决

extension Formatter {
    static let withSeparator: NumberFormatter = {
        let formatter = NumberFormatter()
        formatter.numberStyle = .currency
        formatter.locale = Locale(identifier: "zh_Hans_CN")
        return formatter
    }()
}
  
formatter对象添加设置属性locale
formatter.locale = Locale(identifier: "zh_Hans_CN")

// 打印结果¥1,234.57
print(Formatter.withSeparator.string(from: "1234.568")

通过给对象formatter添加属性locale实现想要的货币格式
formatter.locale = Locale(identifier: "zh_Hans_CN")

备注: 如果想要显示成美元$符号,locale属性设置成:en_US
formatter.locale = Locale(identifier: "en_US")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。