我当前正在使用BigDecimal,小数点后的数字位数可变。我需要能够通过减少设置的位数来格式化数字,因为当我使用format时,它会将十进制数字减少到2-4。
str1 =bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HALF_UP);
str2 = NumberFormat.getInstance().format(bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HALF_UP));
第一个列表工作正常,但是当我想要格式化String / BigDecimal时,它将删除小数位。
注意:小数位的范围从0到15(根据用户)。我正在使用Android Studio-API15 / Java。精度在我的应用中很重要,格式化是为了提高可读性。
答案 0 :(得分:2)
如@JB Nizet所述,您需要调整NumberFormat acc。根据您的需要。
下面是一个有效的示例:
int numberOfDecimalPlaces = 6;
BigDecimal bigDecimal = new BigDecimal(11212.122323);
bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HALF_UP);
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMinimumFractionDigits(numberOfDecimalPlaces);
System.out.println(numberFormat.format(bigDecimal));
输出:
11,212.122323