在Swift中使用NumberFormatter进行大十进制数字格式化

问题描述 投票:0回答:1

我已经完成了格式化数字的操作,但是对于大数它却失败了

let formatter = NumberFormatter()
formatter.numberStyle = .decimal


    if let number = formatter.number(from: "123456789123456789123") , let str = formatter.string(from:number){

        print(number)
        print(str)
    }

打印

123456789123456800000
123,456,789,123,456,800,000

应该打印

123456789123456789123
123,456,789,123,456,789,123

我认为应该有数字溢出,有没有其他选择可以实现这种事情。

ios swift xcode largenumber numberformatter
1个回答
0
投票
let formatter = NumberFormatter() formatter.numberStyle = .decimal if let decimalNumber = Decimal(string: "123456789123456789123"), let str = formatter.string(from:decimalNumber as NSNumber) { print(decimalNumber) print(str) }
© www.soinside.com 2019 - 2024. All rights reserved.