Java 将小数格式化为 2 位精度

Java formatting decimals to 2 digits precision

我现在正在做这个

DecimalFormat df = new DecimalFormat("#.##");
//usage: df.format(someDouble);

但我不知道这是否是 "round off" 显示 double 到 2 个小数点的正确方法。即使小数点左边的位数 > 1,这是否有效?

你应该使用:

DecimalFormat df = new DecimalFormat("#.00");

DecimalFormat df = new DecimalFormat("#.##"); 表示,这些小数位是可选的。您可以在 1.21.0.

上应用时看到差异

--Documentation

要回答关于四舍五入的问题,documentation 告诉它:

Rounding

DecimalFormat provides rounding modes defined in RoundingMode for formatting. By default, it uses RoundingMode.HALF_EVEN.

因此,这取决于您使用 the setter 设置您想要的 RoundingMode

public void setRoundingMode(RoundingMode roundingMode)

即使小数点左边的位数 > 1 也能正常工作吗?

会的。