谁能告诉我如何在 Swift 中将 double 值四舍五入到 x 位小数?
我有:
var totalWorkTimeInHours = (totalWorkTime/60/60)
totalWorkTime
是一个以秒为单位的 NSTimeInterval( double )。
totalWorkTimeInHours
会给我小时数,但它会给我时间量,而且是这么长的精确数字,例如1.543240952039……
当我打印 totalWorkTimeInHours
时,如何将它四舍五入到 1.543?
最佳答案
您可以使用 Swift 的 round
函数来完成此操作。
要以 3 位精度舍入 Double
,首先将其乘以 1000,舍入并将舍入结果除以 1000:
let x = 1.23556789
let y = Double(round(1000 * x) / 1000)
print(y) /// 1.236
不同于任何类型的printf(...)
或String(format: ...)
解决方案,此操作的结果仍然是 类型双
。
编辑:
关于它有时不起作用的评论,请阅读:What Every Programmer Should Know About Floating-Point Arithmetic
关于swift - 在 swift 中将 double 值四舍五入到 x 小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27338573/