每当有十进制值时,我都试图四舍五入一个 Double 数字。我正在尝试以下。以下代码段按预期四舍五入所有其他值。
1.08 -> 2
9.5 -> 10
Run Code Online (Sandbox Code Playgroud)
但是将 0.08 舍入为 0 而不是 1。我在这里遗漏了什么吗?
DecimalFormat df = new DecimalFormat("0");
df.setRoundingMode(RoundingMode.UP);
Double number = 0.08;
System.out.println(df.format(number)); // expecting 1 but produces 0
number = 1.08;
System.out.println(df.format(number)); // correctly produces 2
Run Code Online (Sandbox Code Playgroud)