iOS 15 NumberFormatter number 转 string 丢失精度问题
IOS 14 上没问题,iOS 15 上, Source/BuiltInBasicType.swift 第 120 行,maximumFractionDigits 设置的 16,导致 number 转 string , 6979050226255138061 会转换成 "6979050226255130000"。可以将 maximumFractionDigits 改小点,比如 10。
复现代码: let formatter = NumberFormatter() formatter.usesGroupingSeparator = false formatter.numberStyle = .decimal formatter.maximumFractionDigits = 16 let string = formatter.string(from: NSNumber.init(value: 6979050226255138061)) 对比 iOS 14 和 iOS 15 输出结果是不一致的
同样遇到了,求大佬解决
同样遇到了,求大佬解决
可以将 maximumFractionDigits 改小点,比如 10
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.minimumFractionDigits = 18
formatter.maximumFractionDigits = 18
formatter.roundingMode = .floor
let number = NSDecimalNumber(string: "6.381569271192148411")
let result = formatter.string(from: number)
print(result!)
iOS 15: 6.381569271192150000 iOS 14: 6.381569271192148411
遇到类似的问题,在不改动 maximumFractionDigits 的情况下怎么修复这个问题啊?Thanks♪(・ω・)ノ