小编Suj*_*tha的帖子

带有 DecimalFormat 的 RoundingMode.UP 无法按预期工作

每当有十进制值时,我都试图四舍五入一个 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)

java double rounding

14
推荐指数
1
解决办法
242
查看次数

标签 统计

double ×1

java ×1

rounding ×1