Java 带大小数和小数格式的科学记数法

Java 带大小数和小数格式的科学记数法,java,bigdecimal,decimalformat,Java,Bigdecimal,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 我的问题是:在这种

我正在尝试使用大小数和小数格式以科学记数法的形式显示小数,这就是我到目前为止的想法:

 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


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

使用
g
格式说明符尝试
String.format
。文件是

下面是一些示例代码:

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

可以根据值的范围选择所需的格式。e、 g.(a>=0.1?…)在哪些情况下,您希望打印一种格式而不是另一种格式?在0.0001的情况下,格式应为1.0E-4。在0.2222的情况下,格式应该保持在0.2222而不是2.222E-1非常感谢你,这正是我需要的。@ToniJoe,不客气!麻烦你接受我的回答好吗?