swift - 如何在不快速舍入的情况下划分双精度值?
问题描述
我必须在我的应用程序中将一个大的双精度数除以另一个数字,浮点数后将显示 8 位数字。这是快速代码:
let firstValue:Double = 355531194300085860
let secondValue:Double = 100000000
let result = String(format: "%.8f", firstValue/secondValue)
print("value: \(result)")
我期望输出为3555311943.00085860但编译器给出这样的输出3555311943.00085878。为什么会发生这种情况,我该如何解决?
解决方案
尝试这个
let firstValue = NSDecimalNumber(string: "355531194300085860")
let secondValue = NSDecimalNumber(string: "100000000")
let result = firstValue.dividing(by: secondValue)
print(result)
结果:3555311943.0008586
推荐阅读
- jquery - 使用 ShieldUI 导出 PDF 时添加下一页
- apache-flink - Apache flink - 时间特性
- javascript - 是否可以在标签打开时自动执行 javascript?
- colors - Three.js 不使用自定义纹理/色谱填充形状
- angular - 角度日期选择器中的日期提前禁用
- reactjs - 元素 ref 被指定为字符串。向后兼容 react-dom 作为外部库,
- r - 沿列查找多个对象的 R 函数
- objective-c - 创建 __block 变量而不是常规(堆/堆栈分配)的开销/成本是多少
- reactjs - Reactjs,Webpack 无法在 IE 11 上运行
- networking - 主机如何注册其主机名?