Java 如何用2个分数格式化BigDecimal?

Java 如何用2个分数格式化BigDecimal?,java,currency,bigdecimal,Java,Currency,Bigdecimal,我想格式化并显示带有“总是到分数”的bigdecimic数字。不应显示任何其他分隔符。我怎样才能做到呢?以下方法不起作用 NumberFormat formatter = NumberFormat.getNumberInstance(Locale.GERMANY); formatter.setMaximumFractionDigits(2); formatter.setMinimumIntegerDigits(2); Sysout(formatter.format(new BigDecimal(

我想格式化并显示带有“总是到分数”的
bigdecimic
数字。不应显示任何其他分隔符。我怎样才能做到呢?以下方法不起作用

NumberFormat formatter = NumberFormat.getNumberInstance(Locale.GERMANY);
formatter.setMaximumFractionDigits(2);
formatter.setMinimumIntegerDigits(2);
Sysout(formatter.format(new BigDecimal(100))); //would expect "100,00", but printout is "100"
你可以用这个

 aBigDecimal.SetScale(2, RoundingMode.HALF_UP);

setMinimumFractionDigits
将设置数字小数部分的最小位数

NumberFormat formatter = NumberFormat.getNumberInstance(Locale.GERMANY);
formatter.setMaximumFractionDigits(2);
formatter.setMinimumIntegerDigits(2);
formatter.setMinimumFractionDigits(2);
System.out.println((formatter.format(new BigDecimal(100)))); // prints "100,00"

只需使用自定义格式的

0.00
像这样:

NumberFormat formatter = new DecimalFormat("0.00", DecimalFormatSymbols.getInstance(Locale.GERMANY));

这将强制任何输入的数字必须是小数。

您有两次
setMaximumFractionDigits
。OP已经有了,你说得对,谢谢。我还以为是
设置了最大整数位数
。我们将更新它。
BigDecimal d=new BigDecimal("100");
d=d.setScale(2, RoundingMode.CEILING);
System.out.println(d);