谁能告诉我在Swift中如何将双精度值四舍五入到小数点后位数x?
我有:
var totalWorkTimeInHours = (totalWorkTime/60/60)
以totalWorkTime秒为单位的NSTimeInterval(double)。
totalWorkTime
totalWorkTimeInHours 会给我时间,但是会给我这么长的精确时间,例如1.543240952039 …
totalWorkTimeInHours
打印时如何将其四舍五入为1.543 totalWorkTimeInHours?
您可以使用Swift的round功能来完成此操作。
round
要Double以3位数精度四舍五入,首先将其乘以1000,四舍五入,然后将四舍五入的结果除以1000:
Double
let x = 1.23556789 let y = Double(round(1000*x)/1000) print(y) // 1.236
除了任何一种printf(...)或String(format: ...)解决方案之外,此操作的结果仍为类型Double。
printf(...)
String(format: ...)
编辑: 关于它有时不起作用的评论,请阅读:
每个程序员应该了解的浮点运算法则