gpt4 book ai didi

java - 将 Double 舍入到小数点后 1 位 kotlin : from 0. 044999 到 0.1

转载 作者:IT老高 更新时间:2023-10-28 13:30:23 27 4
gpt4 key购买 nike

我有一个 Double 变量,它是 0.0449999,我想将它四舍五入到小数点后 1 位 0.1

我正在使用 Kotlin,但 Java 解决方案也很有帮助。

验证码:Double = 0.0449999

我尝试使用这两种解决方案获得小数点后 1 位:

  1. val 解 = Math.round(number * 10.0)/10.0
  2. val solution = String.format("%.1f", number)

问题是我在这两种情况下都得到 0.0,因为它将数字从 0.04 舍入到 0.0。它不会取所有小数并四舍五入。

我要获取0.1:0.045 -> 0.05 -> 0.1

最佳答案

最后我按照 Andy Turner 的建议做了,四舍五入到小数点后 3 位,然后到 2,然后到 1:

答案 1:

val number:Double = 0.0449999
val number3digits:Double = String.format("%.3f", number).toDouble()
val number2digits:Double = String.format("%.2f", number3digits).toDouble()
val solution:Double = String.format("%.1f", number2digits).toDouble()

答案 2:

val number:Double = 0.0449999
val number3digits:Double = Math.round(number * 1000.0) / 1000.0
val number2digits:Double = Math.round(number3digits * 100.0) / 100.0
val solution:Double = Math.round(number2digits * 10.0) / 10.0

结果:

0.045 → 0.05 → 0.1

注意:我知道这不是它应该如何工作的,但有时您需要在某些特殊情况下考虑所有小数,所以也许有人会觉得这很有用。

关于java - 将 Double 舍入到小数点后 1 位 kotlin : from 0. 044999 到 0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com