将千位分隔符"˙"添加到浮点数

Mat*_*Car 5 string nsnumber nsnumberformatter ios swift

我正在使用从0.00到9999.99的数字范围.我需要添加"˙"千位分隔符,所以1300,00应该成为1?300,00.NSNumberFormatter使用","作为分隔符,因此对我不利.

我试过用

func formatNumber (i: Float) -> String {
    var counter = 0
    var correctedNumber = ""

    if i > 999 {
        for char in "\(i)".characters {
            if counter == 1 {
                correctedNumber += "?" + "\(char)"
            } else {
                correctedNumber += "\(char)"
            }

            counter++
        }
    } else {
        correctedNumber = "\(i)"
    }

    return correctedNumber
}
Run Code Online (Sandbox Code Playgroud)

但它不能格式化十进制数字.

这样做的正确方法是什么?

Luc*_*tti 9

你只需要正确配置NSNumberFormatter.

let formatter = NSNumberFormatter()
formatter.groupingSeparator = "?"
formatter.decimalSeparator = ","
formatter.usesGroupingSeparator = true
formatter.minimumFractionDigits = 2
Run Code Online (Sandbox Code Playgroud)

测试

formatter.stringFromNumber(1300) // "1?300,00"
Run Code Online (Sandbox Code Playgroud)