【发布时间】:2014-07-24 14:43:22
【问题描述】:
我试图阻止以科学计数法打印 java double。我知道我可以为此使用 DecimalFormat,但这会产生一个字符串。我怎样才能产生一个实际的双倍? 我试过了:
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(8);
double n = Double.parseDouble(df.format(z));
但是,这仍然会产生科学记数法中的双精度数。
【问题讨论】:
-
双精度数既不是科学计数法也不是非科学计数法。双精度是 IEEE 754 binary64 浮点格式。表示双精度的文本可以是科学符号或非科学符号。 tl;dr 打印字符串。
-
您是否意识到
double是内存中的 64 位值,并且没有“科学记数法中的双精度数”之类的东西?您在转换为十进制时选择十进制格式,以便打印。 -
可以使用
Double而不是double来完成吗? -
注意:我不认为
double new = …应该工作。 -
抱歉,不是。不好的例子
标签: java double decimalformat