Java 在BigDecimal中设置n个小数位,并设置数字格式
我目前使用的是BigDecimal,小数点后的位数可变。我需要能够通过松开我设置的位数来格式化数字,因为当我使用format时,它会将小数位数减少到2-4Java 在BigDecimal中设置n个小数位,并设置数字格式,java,Java,我目前使用的是BigDecimal,小数点后的位数可变。我需要能够通过松开我设置的位数来格式化数字,因为当我使用format时,它会将小数位数减少到2-4 str1 =bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HALF_UP); str2 = NumberFormat.getInstance().format(bigDecimal.setScale(numberOfDecimalPlaces, RoundingMode.HA
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。请您添加正确输入/输出的示例,好吗?