【问题标题】:Java : What format is this double in and how can I convert it?Java:这个双精度是什么格式,我该如何转换它?
【发布时间】:2014-04-11 13:08:52
【问题描述】:

我正在阅读一个旧版 Web 服务,它以我不熟悉的格式返回双精度值。

一些例子是
1.58e-6
1.56e-6
1.45e-6

它们应该代表这样的双打(例如) 0.000004343

有谁知道它是什么以及如何转换?

非常感谢。

【问题讨论】:

    标签: java math double type-conversion


    【解决方案1】:

    你可以这样转换 1.58e-6=1.58*10^-6=0.00000158

    【讨论】:

    • 谢谢!所以在java中,我是否必须分解值(作为一个字符串)..然后把方程放在一起?难道没有更简单的方法吗?
    【解决方案2】:

    好吧,其实挺简单的。

    double dbl = 1.45e-6;
    DecimalFormat df = new DecimalFormat("#.########");
    System.out.println(df.format(dbl));  
    

    输出:0.00000145

    【讨论】:

      【解决方案3】:

      这叫做科学记数法。 Double.parseDouble() 可以处理它。注意它们不是双精度数,它们是用科学计数法文本表示的实数。 Double 是你想要的目标格式,不是这个格式。

      【讨论】:

        【解决方案4】:

        试试这个

        String s = new DecimalFormat("0.##############").format(Double.parseDouble("1.58e-6"));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多