【问题标题】:How to show zero after comma in NumberFormatter如何在 NumberFormatter 中的逗号后显示零
【发布时间】:2019-07-23 08:58:56
【问题描述】:

我尝试使用 NumberFormatter 将我的号码格式化为字符串。这是我的代码:

        let formater = NumberFormatter()
        formater.groupingSeparator = " "
        formater.numberStyle = .decimal


        let formattedNumber = formater.string(from: (self.money as NSNumber))

        self.currentMoneyLabel.text = "\(formattedNumber!) ₽"

我有类似 1 234 的数字,但我需要获得类似 1 234,00 的数字。

如果我的数字在小数点后,则数字不为零,一切正常。但如果逗号后面的数字为零,则不显示。如何让高达百分之一的数字始终显示,即使它是零?

【问题讨论】:

    标签: swift number-formatting


    【解决方案1】:

    只需添加:

    formater.minimumFractionDigits = 2
    

    文档在这里:https://developer.apple.com/documentation/foundation/numberformatter/1410459-minimumfractiondigits

    编辑: 但是您应该使用具有正确语言环境的货币格式:

    let price = 1234
    
    let formatter = NumberFormatter()
    formatter.numberStyle = .currency
    formatter.locale = Locale(identifier: "ru_RU")
    formatter.string(for: price) // "1 234,00 ₽"
    

    但如果您希望您的应用适应设备的区域设置,只需将 locale 行替换为:

    formatter.locale = .current
    

    【讨论】:

    • 使用string(for:) 避免需要NSNumber
    • 确实,我只是复制粘贴他的原始代码。我编辑了我的答案,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多