【发布时间】:2014-04-11 13:08:52
【问题描述】:
我正在阅读一个旧版 Web 服务,它以我不熟悉的格式返回双精度值。
一些例子是
1.58e-6
1.56e-6
1.45e-6
它们应该代表这样的双打(例如) 0.000004343
有谁知道它是什么以及如何转换?
非常感谢。
【问题讨论】:
标签: java math double type-conversion
我正在阅读一个旧版 Web 服务,它以我不熟悉的格式返回双精度值。
一些例子是
1.58e-6
1.56e-6
1.45e-6
它们应该代表这样的双打(例如) 0.000004343
有谁知道它是什么以及如何转换?
非常感谢。
【问题讨论】:
标签: java math double type-conversion
你可以这样转换 1.58e-6=1.58*10^-6=0.00000158
【讨论】:
好吧,其实挺简单的。
double dbl = 1.45e-6;
DecimalFormat df = new DecimalFormat("#.########");
System.out.println(df.format(dbl));
输出:0.00000145
【讨论】:
这叫做科学记数法。 Double.parseDouble() 可以处理它。注意它们不是双精度数,它们是用科学计数法文本表示的实数。 Double 是你想要的目标格式,不是这个格式。
【讨论】:
试试这个
String s = new DecimalFormat("0.##############").format(Double.parseDouble("1.58e-6"));
【讨论】: