gpt4 book ai didi

java - 按特定小数值的舍入数

转载 作者:行者123 更新时间:2023-11-29 04:22:52 24 4
gpt4 key购买 nike

我正在尝试舍入 float ,但有一定条件。如果第二位小数点大于或等于 9,则向上取整,否则向下取整。你能帮我这个吗?

        //0.56 -> 0.5
//1.56 -> 1.5
//1.58 -> 1.5
//1.59 -> 1.6
//15.56 -> 15.5

最佳答案

要在 0.09 处四舍五入,在 0.089999999... 处四舍五入,您需要添加 0.01 并截断为 1 个小数位。

可以使用 Math.floor() 截断正浮点值。方法,像这样:

Math.floor(value * 10 + 0.1) / 10

更新

因为像 0.59 这样的数字实际上是 0.58999999999999996,所以它会向下舍入,而本意是向上舍入。

绕过“broken floating point math”的一种方法是使用 BigDecimal:

BigDecimal.valueOf(value).add(new BigDecimal("0.01")).setScale(1, RoundingMode.DOWN)

如果您经常这样做,new BigDecimal("0.01") 值应该创建为静态最终常量。

注意:与第一个解决方案一样,这仅适用于正数。

关于java - 按特定小数值的舍入数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012575/

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