首页 > 解决方案 > 如何在不快速舍入的情况下划分双精度值?

问题描述

我必须在我的应用程序中将一个大的双精度数除以另一个数字,浮点数后将显示 8 位数字。这是快速代码:

let firstValue:Double = 355531194300085860
let secondValue:Double = 100000000
let result = String(format: "%.8f", firstValue/secondValue)
print("value: \(result)")  

我期望输出为3555311943.00085860但编译器给出这样的输出3555311943.00085878。为什么会发生这种情况,我该如何解决?

标签: swiftdouble

解决方案


尝试这个

let firstValue = NSDecimalNumber(string: "355531194300085860")
let secondValue = NSDecimalNumber(string: "100000000")
let result = firstValue.dividing(by: secondValue)
print(result)

结果:3555311943.0008586


推荐阅读