如何格式化BigDecimal 2个分数?

时间:2014-07-03 15:25:13

标签: java currency bigdecimal

我想格式化并显示BigDecimal个数字,总是分数。不应该显示其他分隔符。我怎么能实现它?以下不起作用。

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"

4 个答案:

答案 0 :(得分:5)

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"

答案 1 :(得分:2)

只需使用

的自定义格式
0.00

像这样:

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

这将强制任何传入的数字必须为小数。

答案 2 :(得分:0)

你可以用它。

 aBigDecimal.SetScale(2, RoundingMode.HALF_UP);

答案 3 :(得分:0)

BigDecimal d=new BigDecimal("100");
d=d.setScale(2, RoundingMode.CEILING);
System.out.println(d);