首页 > 解决方案 > 如何在 NumberFormatter 中的逗号后显示零

问题描述

我尝试使用 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 的数字。

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

标签: swiftnumber-formatting

解决方案


只需添加:

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

推荐阅读