Ton*_*Joe 2 java bigdecimal decimalformat
我正在尝试使用bigdecimals和decimalFormat以科学记数法格式显示小数,这是我到目前为止所提出的:
BigDecimal a = new BigDecimal("0.000001");
DecimalFormat df = new DecimalFormat("0.0###E0");
System.out.println(df.format(a));
Run Code Online (Sandbox Code Playgroud)
这个程序输出"1.0E-4",这正是我想要的.现在,如果我将bigDecimal设置为"0.2222",则输出为2.222E-1.
我的问题是:在这种情况下有没有办法阻止科学记数法而不是2.222E-1,输出应该是0.2222?
尝试String.format使用g格式说明符.文档在这里.
这是一些示例代码:
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));
}
}
Run Code Online (Sandbox Code Playgroud)
它产生:
1.000E-06
0.2222
Run Code Online (Sandbox Code Playgroud)