我试着用空格来转换我的双精度字符串。现在我有一个1234567.54这样的数字,我需要一个1234567.54这样的字符串,怎么用swift呢?

extension StringProtocol where Self: RangeReplaceableCollection {
    mutating func insert(separator: String, every n: Int) {
        indices.reversed().forEach {
            if $0 != startIndex { if distance(from: startIndex, to: $0) % n == 0 { insert(contentsOf: separator, at: $0) } }
        }
    }
    func inserting(separator: String, every n: Int) -> Self {
        var string = self
        string.insert(separator: separator, every: n)
        return string
    }
}

它的工作,但不是我需要的那么多

最佳答案

您可以使用NumberFormatter

let formatter = NumberFormatter()
formatter.groupingSeparator = " "
formatter.numberStyle = .decimal
let formattedNumber = formatter.string(from: 1234567.89)

print(formattedNumber)

打印:1234567.89

10-04 22:49
查看更多