十进制四舍五入 - 我得到2.01506160000328E14

时间:2015-06-16 10:32:21

标签: java

我收到2.01506160000328E14 -----我需要这个值应该是20150616.0000328

从网络我读数据读取为double(in,10)... Double值我得到了E14。我想转换为正常数字,如上格式

2 个答案:

答案 0 :(得分:1)

  

双倍价值我得到了E14。我想转换为正常数字,如上格式

正常数字。您所看到的只是scientific notation中的字符串表示。

  

我需要这个值应该是20150616.0000328

号码2.01506160000328E14201506160000328。如果你想要20150616.0000328,你必须除以一百万。

那就是说,我会强烈建议如果这是一个日期/时间,你会把它读作 text 并解析它。

答案 1 :(得分:1)

是否要将双打印到字符串? 20150616.0000328应为2.01506160000328E7但不是2.01506160000328E14

代码如下,是你想要的吗?

public static void main(String[] args) {
    Double d = 20150616.0000328;
    System.out.println("exponential = " + d);

    String formatMask = "0.################################################";
    DecimalFormat df = new DecimalFormat(formatMask);

    System.out.println("normal number=" + df.format(d));
}

结果:

指数= 2.01506160000328E7

正常数= 20150616.0000328