【问题标题】:Parsing a String with an Exponent (Java)用指数解析字符串 (Java)
【发布时间】:2012-05-25 13:16:11
【问题描述】:

我有一个类似于:7.6E+7 的字符串。

我的问题很简单:如何把它变成对应的数字:76000000

我曾尝试使用substring 来隔离E+7 部分,然后解析7 部分,然后将小数位移到7 以上。有更简单的方法吗?

谢谢!

【问题讨论】:

    标签: java string parsing int double


    【解决方案1】:
    long n = Double.valueOf("7.6E+7").longValue();
    System.out.println(d);
    // prints 76000000 to the output.
    

    【讨论】:

      【解决方案2】:

      我建议使用Double.parseDouble():

      double val = Double.parseDouble(str);
      

      其中str 是输入字符串。

      【讨论】:

        【解决方案3】:

        您可以使用 Double.parseDouble() 将其作为数字获取。

        String e = "7.6E+7";
        System.out.println(Double.parseDouble(e));
        

        给出输出 7.6E7。如果您不想在输出中使用 E,您可以使用

        NumberFormat f = NumberFormat.getInstance();
        f.setGroupingUsed(false);
        System.out.println(f.format(Double.parseDouble(e)));
        

        这将为您提供输出 76000000 而无需转换为整数。例如,在数字上加 0.1 将得到输出 76000000.1

        【讨论】:

          【解决方案4】:

          如果您确定数字最终可以转换为整数而不会丢失精度,那么您可以这样做:

          int d = (int) Double.parseDouble("7.6E+7");
          System.out.println(d);
          

          76000000 打印到输出。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2022-01-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-11-26
            相关资源
            最近更新 更多