Java中具有固定数小数位数的科学记数法

Ton*_*Joe -1 java decimalformat

我试图使用decimalFormat以固定数量的小数位后的科学记数法显示十进制数字,如下所示:

DecimalFormat df = new DecimalFormat("0.####E0");
System.out.println(df.format(0.2222));
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我使用模式"0.#### E0"将小数位数设置为4,程序输出2.222E-1.

现在这是我得到的不同输入值:

Five fractional digits: 0.22222 = 2.2222E-1
Six fractional digits: 0.22222 = 2.22222E-1
Seven fractional digits: 0.22222 = 2.22222E-1
Run Code Online (Sandbox Code Playgroud)

等等...

我想要做的是代替2.222222E-1,程序应该显示2.2222E-3.所以任何帮助请和谢谢

Cod*_*roc 6

我想要做的是代替2.222222E-1,程序应该显示2.2222E-3

不可以.您的逻辑是不正确E-1的手段10 -1和您的输入0.2222必须2.222E-1是指2.222×10 -1现在你可以没有价值2.2222×10 -3 为什么呢?因为价值0.0022222不是0.2222

对不起伙计们,我的意思是222.2222E-3

0.2222不可以.对于你不能拥有的价值,222.2222E-3这意味着222.2222*10 -3和价值0.2222222仍然不同.另外看看DecimalFormat文档.