Java 在BigDecimal中设置n个小数位,并设置数字格式

Java 在BigDecimal中设置n个小数位,并设置数字格式,java,Java,我目前使用的是BigDecimal,小数点后的位数可变。我需要能够通过松开我设置的位数来格式化数字,因为当我使用format时,它会将小数位数减少到2-4 str1 =bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HALF_UP); str2 = NumberFormat.getInstance().format(bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HA

我目前使用的是BigDecimal,小数点后的位数可变。我需要能够通过松开我设置的位数来格式化数字,因为当我使用format时,它会将小数位数减少到2-4

str1 =bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HALF_UP);

str2 = NumberFormat.getInstance().format(bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HALF_UP));
第一个列表工作正常,但是当我想格式化字符串/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

正如@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

您需要更改NumberFormat,而不是BigDecimal。请问,您能添加正确输入/输出的示例吗?您需要更改NumberFormat,而不是BigDecimal。请您添加正确输入/输出的示例,好吗?