gpt4 book ai didi

java - HALF_EVEN 舍入不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:36 27 4
gpt4 key购买 nike

我已经阅读了几篇关于使用十进制格式和舍入的文章,我认为我使用的是正确的,但不知何故 HALF_EVEN、HALF_DOWN 或 HALF_UP 舍入不起作用。如果它与 eclipse 设置有关,或者我真的错误地使用了 decimalformat,您有什么想法吗?

我的目标是像标准数学舍入那样将每个数字从 0.55 舍入到 0.6。所以...正如我所假设的...最好的选择是使用“HALF_UP”四舍五入。

代码:

import java.math.RoundingMode;
import java.text.DecimalFormat;

public class Rounding {

public static void main(String[] args) {
DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(1);
df.setMaximumFractionDigits(1);
df.setRoundingMode(RoundingMode.HALF_UP);


for (double x = 0.55; x < 10.0; x++) {
System.out.println("Original value: " + x + "\tRounded value: " + df.format(x));
}
}
}

结果:

Original value: 0.55    Rounded value: 0,6
Original value: 1.55 Rounded value: 1,6
Original value: 2.55 Rounded value: 2,5
Original value: 3.55 Rounded value: 3,5
Original value: 4.55 Rounded value: 4,5
Original value: 5.55 Rounded value: 5,5
Original value: 6.55 Rounded value: 6,5
Original value: 7.55 Rounded value: 7,5
Original value: 8.55 Rounded value: 8,6
Original value: 9.55 Rounded value: 9,6

最佳答案

一旦您拥有 double 格式的数字,您就已经创建了隐藏的不准确性,它可以在您看不到的情况下将数字舍入到低于或高于中间标记的位置。

您需要使用 BigDecimal。

关于java - HALF_EVEN 舍入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061016/

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