我想格式化并显示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"
答案 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);