我希望能够确保一个数字只有两个小数位。
输入的E.G区域= 256.12345因此区域为256.12。
这就是我所拥有的:
DecimalFormat df = new DecimalFormat( "#,###,###,##0.00" );
double area = new Double(area.format(area)).doubleValue();
area = (double)(r*r);
答案 0 :(得分:0)
您实际上并未使用实例df
。
更改您的代码以使用它而不是在area
上调用方法(这将无效,因为基元没有方法):
double area = new Double(df.format(area)).doubleValue();
然而,精确度的形式更多是出于打印目的而不是存储目的(Double
会将其存储在双浮点的IEEE浮点标准中,这可能会导致浮点值不精确。)
要解决这个问题,请改用BigDecimal
,精度为2:
BigDecimal decimal = new BigDecimal(area);
decimal.setScale(2);
System.out.println(decimal); // will print area to two decimal places
答案 1 :(得分:0)
这就是你这样做的方式。
//formatting numbers upto 2 decimal places in Java
DecimalFormat df = new DecimalFormat("#,###,##0.00");
System.out.println(df.format(364565.14));
System.out.println(df.format(364565.1454));
//formatting numbers upto 3 decimal places in Java
df = new DecimalFormat("#,###,##0.000");
System.out.println(df.format(364565.14));
System.out.println(df.format(364565.1454));
}
}
Output:
364,565.14
364,565.15
364,565.140
364,565.145