一尘不染

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

swift

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

我有:

var totalWorkTimeInHours = (totalWorkTime/60/60)

totalWorkTime秒为单位的NSTimeInterval(double)。

totalWorkTimeInHours 会给我时间,但是会给我这么长的精确时间,例如1.543240952039 …

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


阅读 323

收藏
2020-07-07

共1个答案

一尘不染

您可以使用Swift的round功能来完成此操作。

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

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

除了任何一种printf(...)String(format: ...)解决方案之外,此操作的结果仍为类型Double

编辑:
关于它有时不起作用的评论,请阅读:

每个程序员应该了解的浮点运算法则

2020-07-07