IOS 14 上没问题,iOS 15 上, Source/BuiltInBasicType.swift 第 120 行,maximumFractionDigits 设置的 16,导致 number 转 string , 6979050226255138061 会转换成 "6979050226255130000"。可以将 maximumFractionDigits 改小点,比如 10。
tktrz96b1#
复现代码:let formatter = NumberFormatter()formatter.usesGroupingSeparator = falseformatter.numberStyle = .decimalformatter.maximumFractionDigits = 16let string = formatter.string(from: NSNumber.init(value: 6979050226255138061))对比 iOS 14 和 iOS 15 输出结果是不一致的
vhipe2zx2#
同样遇到了,求大佬解决
332nm8kg3#
可以将 maximumFractionDigits 改小点,比如 10
qni6mghb4#
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.381569271192150000iOS 14: 6.381569271192148411
遇到类似的问题,在不改动 maximumFractionDigits 的情况下怎么修复这个问题啊?Thanks♪(・ω・)ノ
4条答案
按热度按时间tktrz96b1#
复现代码:
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 输出结果是不一致的
vhipe2zx2#
同样遇到了,求大佬解决
332nm8kg3#
同样遇到了,求大佬解决
可以将 maximumFractionDigits 改小点,比如 10
qni6mghb4#
iOS 15: 6.381569271192150000
iOS 14: 6.381569271192148411
遇到类似的问题,在不改动 maximumFractionDigits 的情况下怎么修复这个问题啊?Thanks♪(・ω・)ノ