我目前使用的是BigDecimal,小数点后的位数可变。我需要能够在不丢失我设置的位数的情况下格式化数字,因为当我使用格式时,它会将小数位数减少到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。精度在我的应用程序中很重要,格式化是为了提高可读性。
@JB Nizet提到,您需要根据需要调整NumberFormat。
下面是一个工作示例:
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