除以 BigDecimal 时如何保持尾随零
How to keep trailing zeros when dividing a BigDecimal
我有一个要求,我需要将一个 BigDecimal
数字除以 100,并在不删除尾随零的情况下显示出现的确切数量。但是默认情况下会修剪零。我该如何预防?
BigDecimal endDte = new BigDecimal("2609.8200");
BigDecimal startDte = new BigDecimal("100");
BigDecimal finalPerformance = endDte.divide(startDte);
System.out.println(finalPerformance.toString());
输出:26.0982
预期:26.098200
您想要的是格式化,因为那些 0 不会增加值。您可以使用它,您将获得所需的输出。
BigDecimal endDte = new BigDecimal("2609.8200");
BigDecimal startDte = new BigDecimal("100");
BigDecimal finalPerformance = endDte.divide(startDte);
System.out.printf("%2.6f%n", finalPerformance);
其他选项,如果你总是想除以 100,你可以只移动小数点。当您这样做时,精度保持不变。在这种情况下,要尝试的新代码是
BigDecimal endDte = new BigDecimal("2609.8200");
//BigDecimal startDte = new BigDecimal("100");
BigDecimal finalPerformance = endDte.movePointLeft(2);
System.out.println(finalPerformance);
我有一个要求,我需要将一个 BigDecimal
数字除以 100,并在不删除尾随零的情况下显示出现的确切数量。但是默认情况下会修剪零。我该如何预防?
BigDecimal endDte = new BigDecimal("2609.8200");
BigDecimal startDte = new BigDecimal("100");
BigDecimal finalPerformance = endDte.divide(startDte);
System.out.println(finalPerformance.toString());
输出:26.0982
预期:26.098200
您想要的是格式化,因为那些 0 不会增加值。您可以使用它,您将获得所需的输出。
BigDecimal endDte = new BigDecimal("2609.8200");
BigDecimal startDte = new BigDecimal("100");
BigDecimal finalPerformance = endDte.divide(startDte);
System.out.printf("%2.6f%n", finalPerformance);
其他选项,如果你总是想除以 100,你可以只移动小数点。当您这样做时,精度保持不变。在这种情况下,要尝试的新代码是
BigDecimal endDte = new BigDecimal("2609.8200");
//BigDecimal startDte = new BigDecimal("100");
BigDecimal finalPerformance = endDte.movePointLeft(2);
System.out.println(finalPerformance);