【问题标题】:Convert very small double values to string (with scientific notation) (Java)将非常小的双精度值转换为字符串(使用科学计数法)(Java)
【发布时间】:2010-12-12 12:58:44
【问题描述】:

我正在尝试打印一个小的 double 数字,例如 6.67e-11,但使用 Double.toString() 会返回 0。我该怎么做才能让它打印 6.67e-11(或类似的东西)?

【问题讨论】:

标签: java double scientific-notation


【解决方案1】:

无法重现:

public class Test {

    public static void main(String args[])
    {
        double d = 6.67e-11;

        System.out.println(Double.toString(d)); // Prints "6.67E-11"
    }
}

IIRC,Double.toString() 始终返回一个字符串,该字符串允许使用 Double.parseDouble() 来回传递确切的值。

我的猜测是,由于其他操作中的一些舍入错误,您实际上没有一个小的值 - 您有 0。

【讨论】:

  • +1 - javadoc 证实了您的回忆:“m 或 a 的小数部分必须打印多少位?必须至少有一个数字来表示小数部分,并且超出此数量,但仅与唯一区分参数值与 double 类型的相邻值所需的数量一样多。”
  • 该死的,你是对的。 Double.toString() 按我的意愿工作,错误在代码的另一部分。我想我应该在询问之前进行更多测试......
猜你喜欢
  • 1970-01-01
  • 2011-06-02
  • 2017-12-24
  • 2023-04-01
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
相关资源
最近更新 更多