如果值为200.3456,则应该将其格式化为200.34。 如果它是200,那么它应该是200.00。


当前回答

例如,如果你真的想要相同的双精度,但以你想要的方式四舍五入,你可以使用BigDecimal

new BigDecimal(myValue).setScale(2, RoundingMode.HALF_UP).doubleValue();

其他回答

value = (int)(value * 100 + 0.5) / 100.0;

我认为这样比较简单:

double time = 200.3456;
DecimalFormat df = new DecimalFormat("#.##");      
time = Double.valueOf(df.format(time));

System.out.println(time); // 200.35

请注意,这实际上是为您进行舍入,而不仅仅是格式化。

对于两个四舍五入数字。非常简单,你基本上是更新变量,而不是只是显示的目的,DecimalFormat。

x =数学。地板(x * 100) / 100;

例如,如果你真的想要相同的双精度,但以你想要的方式四舍五入,你可以使用BigDecimal

new BigDecimal(myValue).setScale(2, RoundingMode.HALF_UP).doubleValue();

请使用Apache通用数学:

Precision.round(10.4567, 2)