小编典典

快速将双精度值舍入到 x 小数位数

all

谁能告诉我如何在 Swift 中将双精度值舍入到 x 小数位?

我有:

var totalWorkTimeInHours = (totalWorkTime/60/60)

totalWorkTime秒为单位的 NSTimeInterval (double)。

totalWorkTimeInHours会给我时间,但它给了我如此长的精确数字的时间量,例如 1.543240952039 ......

打印时如何将其四舍五入到 1.543 totalWorkTimeInHours


阅读 129

收藏
2022-03-11

共1个答案

小编典典

您可以使用 Swift 的round函数来完成此操作。

Double以 3 位精度舍入 a,首先将其乘以 1000,然后将其舍入,然后将舍入结果除以 1000:

let x = 1.23556789
let y = Double(round(1000 * x) / 1000)
print(y) /// 1.236

与任何一种printf(...)String(format: ...)解决方案不同,此操​​作的结果仍然是 type Double

编辑:
关于它有时不起作用的评论,请阅读:What Every Programmer Should Know About Floating-Point
Arithmetic

2022-03-11