带有bigDecimals和decimalFormat的科学记数法

时间:2015-08-28 14:05:25

标签: java bigdecimal decimalformat

我正在尝试使用bigdecimals和decimalFormat以科学记数法格式显示小数,这是我到目前为止所提出的:

 BigDecimal a = new BigDecimal("0.000001");
 DecimalFormat df = new DecimalFormat("0.0###E0");
 System.out.println(df.format(a));

这个程序输出“1.0E-4”,这正是我想要的。现在,如果我将bigDecimal设置为“0.2222”,则输出为2.222E-1。

我的问题是:在这种情况下有没有办法阻止科学记数法而不是2.222E-1,输出应该是0.2222?

1 个答案:

答案 0 :(得分:6)

使用String.format格式说明符尝试g。文档为here

以下是一些示例代码:

import java.math.BigDecimal;

public class BigDecTest {
    public static final void main(String[] args) {
        BigDecimal a = new BigDecimal("0.000001");
        System.out.println(String.format("%6.4G",a));

        BigDecimal b = new BigDecimal("0.2222" );
        System.out.println(String.format("%6.4G", b));
    }
}

它产生:

1.000E-06
0.2222