在Kotlin中将Double四舍五入到小数点后一位:如何从0.044999得到0.1?
大家好!我刚开始学习用于Android的Kotlin,遇到了一个关于浮点数四舍五入的奇怪问题。
我有一个Double类型的变量:`val number = 0.044999`。我需要将它四舍五入到小数点后一位,得到0.1(即数学上正确的向上舍入,因为0.0之后的下一位是4,但如果看整个数字,0.045在四舍五入到一位小数时已经得到0.1)。
我尝试过使用`String.format("%.1f", number)`,但它输出`0.0`,因为format只查看小数点后的第一位?然后我尝试了`Math.round(number * 10.0) / 10.0`,但结果又是`0.0`。我卡住了!
这是我的代码:
```kotlin
fun main() {
val number = 0.044999
val rounded = Math.round(number * 10.0) / 10.0
println(rounded) // 输出0.0,但需要0.1
}
```
我明白问题出在浮点数的二进制表示上,但如何正确地进行“诚实”的四舍五入呢?