【问题标题】:Java DecimalFormat to doubleJava DecimalFormat 翻倍
【发布时间】: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


【解决方案1】:

格式不是双精度数据类型的属性。这仅定义了一组值。

打印总是需要转换成字符串,所以 DecimalFormat 没问题。

关于使用一组完全不同的小数作为值,请参阅 java.math.BigDecimal。这是一组“所有”小数,具有动态的小数位数、运算和舍入控制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2010-10-19
    • 1970-01-01
    相关资源
    最近更新 更多