簡體   English   中英

在BigDecimal中設置n個小數位並格式化數字Java

[英]Set n decimal places in BigDecimal and format the number Java

我目前正在使用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。 精度在我的應用中很重要,格式化是為了提高可讀性。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM