java(初学者)将科学记数法转换为十进制
如果 我希望我的输出为0.0001999 我怎么做呢?看一下java(初学者)将科学记数法转换为十进制,java,decimal,scientific-notation,Java,Decimal,Scientific Notation,如果 我希望我的输出为0.0001999 我怎么做呢?看一下 double d = 1.999e-4 及 您可以浏览NumberFormat类的子类以了解更多详细信息。您可以这样做: NumberFormat formatter = new DecimalFormat("###.#####"); String f = formatter.format(d); 查看NumberFormat方法的文档,按照您认为合适的方式格式化您的double DecimalFormat是Numbe
double d = 1.999e-4
及
您可以浏览
NumberFormat
类的子类以了解更多详细信息。您可以这样做:
NumberFormat formatter = new DecimalFormat("###.#####");
String f = formatter.format(d);
查看NumberFormat
方法的文档,按照您认为合适的方式格式化您的double
DecimalFormat
是NumberFormat
的一个特例,正如它的构造函数所说,我认为您的案例不需要它的功能。如果您感到困惑,请查看他们的文档。为方便起见,请使用NumberFormat
的工厂方法getInstance()
。如果您只想这样打印
double d = 1.999e-4;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(7);
System.out.println(nf.format(d));
您可以更改10f,10=所需的小数位数。我想BigDecimal类中有一个名为
toPlainString()的方法。
。
e、 g.如果BigDecimal的值为1.23e-8,则该方法返回0.0000000124
System.out.printf("%1$.10f", d);
上面的代码打印0.0000000123,然后您可以根据需要处理字符串。非常感谢!(顺便说一句,我应该使用哪种数字格式和十进制格式??)非常感谢!如果有System.out.printf(“%3$.10f”,e,f,d),1$=?1$=参数索引是什么;你会使用3美元,因为你的目标是d。详情请看这里。您应该选择一个有帮助的答案和/或向上投票。我的Excel工作表编号是42.063706,但返回42。06370600000000337104211212135851383209228515625@AbdullahNurum您使用什么方法读取excel工作表并构造BigDecimal对象?当我用字符串文字“42.063706”构造它时,它输出正确的内容(与输入相同)。确保在读取和生成BigDecimal对象之间没有将其存储在浮点值中。在这段时间内,您应该将其作为字符串保存,以免丢失精度。
double d = 1.999e-4;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(7);
System.out.println(nf.format(d));
System.out.printf("%1$.10f", d);
BigDecimal d = new BigDecimal("1.23E-8");
System.out.println(d.toPlainString());