谁能告诉我如何在 Swift 中将双精度值舍入到 x 小数位?
我有:
var totalWorkTimeInHours = (totalWorkTime/60/60)
以totalWorkTime秒为单位的 NSTimeInterval (double)。
totalWorkTime
totalWorkTimeInHours会给我时间,但它给了我如此长的精确数字的时间量,例如 1.543240952039 ......
totalWorkTimeInHours
打印时如何将其四舍五入到 1.543 totalWorkTimeInHours?
您可以使用 Swift 的round函数来完成此操作。
round
要Double以 3 位精度舍入 a,首先将其乘以 1000,然后将其舍入,然后将舍入结果除以 1000:
Double
let x = 1.23556789 let y = Double(round(1000 * x) / 1000) print(y) /// 1.236
与任何一种printf(...)或String(format: ...)解决方案不同,此操作的结果仍然是 type Double。
printf(...)
String(format: ...)
编辑: 关于它有时不起作用的评论,请阅读:What Every Programmer Should Know About Floating-Point Arithmetic