谁能告诉我在Swift中如何将双精度值四舍五入到小数点后位数x?
我有:
var totalWorkTimeInHours = (totalWorkTime/60/60)
以totalWorkTime
秒为单位的NSTimeInterval(double)。
totalWorkTimeInHours
会给我时间,但是会给我这么长的精确时间,例如1.543240952039 …
打印时如何将其四舍五入为1.543 totalWorkTimeInHours
?
您可以使用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
。
编辑:
关于它有时不起作用的评论,请阅读:
每个程序员应该了解的浮点运算法则
我有一个双变量是,我想把它四舍五入到1小数位。 我正在使用Kotlin,但Java解决方案也很有用。 Val值为0.0449999 我试图得到1小数位与这两个解决方案: 问题是在这两种情况下我都得到了0.0,因为它将数字从四舍五入到。它不需要所有的小数和四舍五入。 我想获得0.1:
目前,我正在使用以下代码来格式化“值”常量: 我得到的结果是2366.34,但我希望它是0.05的倍数。在这种情况下,它应该是2366.35。 最好的方法是什么?
我如何四舍五入到两个小数位?
获取以下数字集--> 当相加时,这些给出一个整数。
我试图将大的十进制值四舍五入到小数点后两位。 我正在使用 但它并没有始终如一地满足我的要求: 我不在乎有效数字,我只想要小数点后两位。我如何使用BigDecimal做到这一点?或者还有其他类/库更适合这个?
谁能告诉我如何在SWIFT中舍入一个双倍值到小数点位数的x位? 我有: 当我打印时,如何将其舍入到1.543?