gpt4 book ai didi

java - DecimalFormat 的奇数结果四舍五入

转载 作者:行者123 更新时间:2023-11-30 06:52:44 26 4
gpt4 key购买 nike

提供 37.35 的浮点值,我得到一个 37.3 的字符串

这是我的代码。

DecimalFormat format = new DecimalFormat(".0");
format.setRoundingMode(RoundingMode.HALF_UP);
return format.format(37.35f);

我希望收到一个 37.4 字符串。我做错了什么?

我认为这可能是由于传递了一个 float ,但是我无法选择收到的变量类型。即使float的实际表示是37.3500221215051544,它仍然应该向上舍入吗?

将此值格式化为字符串的目的是,我可以将其传递给 BigDecimal 并获得精确的值,例如 37.4

最佳答案

37.35 实际上更接近 37.3,然后更接近 37.4。您可以通过以下代码检查:

System.out.println(37.35f-37.3f);
System.out.println(37.4f-37.35f);

打印 0.0499992370.05000305

对于double数据类型,结果是不同的。

要解决这个问题,只需在您的数字中添加一点增量即可。例如,0.01。

关于java - DecimalFormat 的奇数结果四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42423366/

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