gpt4 book ai didi

swift - 大于或等于一千万的数字,使用 NumberFormatter Precision

转载 作者:行者123 更新时间:2023-11-28 15:35:31 25 4
gpt4 key购买 nike

这是我的代码

extension Float {
func decimalString(maxPrecision: UInt) -> String {
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = Int(maxPrecision)
return formatter.string(from: NSNumber(value: self)) ?? ""
}
}

但是有一个问题

let a: Float = 12345678.1
print("\(a.decimalString(maxPrecision: 2))")

打印 12,345,680,但需要 12,345,678.1怎么了!?!

最佳答案

Double 表示一个 64 位 float 。
Float 表示一个 32 位 float 。

所以 Double 更精确,请改用此代码:

extension Double {
func decimalString(maxPrecision: UInt) -> String {
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = Int(maxPrecision)
return formatter.string(from: NSNumber(value: self)) ?? ""
}
}

let a: Double = 12345678.1
print("\(a.decimalString(maxPrecision: 2))") // 12,345,678.1

关于swift - 大于或等于一千万的数字,使用 NumberFormatter Precision,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44342617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com