强制BigDecimals使用科学计数法

我有这种方法:

    public void Example(BigDecimal value, int scale){

BigDecimal x = new BigDecimal("0.00001");

System.out.println("result: " + (value.multiply(x)).setScale(scale, RoudingMode.HALF_UP).toString());

例如,如果value = 1且scale =

2,则输出为“结果:0.00”。我以为会是1.00E-5。因此,我的疑问是:如果BigDecimal的大小大于某个值(在我的示例中为2),我该如何强制将BigDecimal格式化为科学计数形式?

回答:

您可以将DecimalFormat搭配使用setMinimumFractionDigits(int

scale)

private static String format(BigDecimal x, int scale) {

NumberFormat formatter = new DecimalFormat("0.0E0");

formatter.setRoundingMode(RoundingMode.HALF_UP);

formatter.setMinimumFractionDigits(scale);

return formatter.format(x);

}

...

System.out.println(format(new BigDecimal("0.00001"), 2)); // 1.00E-5

System.out.println(format(new BigDecimal("0.00001"), 3)); // 1.000E-5

以上是 强制BigDecimals使用科学计数法 的全部内容, 来源链接: utcz.com/qa/404856.html

回到顶部