【问题标题】:How to convert string to double如何将字符串转换为双精度
【发布时间】:2014-12-01 09:41:13
【问题描述】:
  double d=0.0;
    for (String k : word.keySet()) {
        System.out.println(k + "\t" + word.get(k));           
        d+=Double.valueOf(word.get(k));
        d+=word.get(k);
        word.get(k);
    }
  System.out.println("Value\t"+d);

这些值在哈希图中。第5行出现不兼容类型错误,如何纠正?

【问题讨论】:

  • 一切都发生

标签: java hashmap double type-conversion


【解决方案1】:

d+=Double.valueOf(word.get(k)); 行将正确地将word.get(k)Double 值添加到您的double d,前提是String 可解析为Double

然而,它后面的行将String 添加到双精度数中,这将无法编译。

循环中的最后一行没有任何意义,您在调用 get 时没有实际使用该值。

【讨论】:

  • 在word中我有像这样的值对 ab 0.07890 cam 0.12435
  • @user3387277 这些值应该没问题。如果你没有碰到NumberFormatException,你基本上没问题。
【解决方案2】:

您可以使用Double.parseDouble()

例如:

String str="2.25";
double d=Double.parseDouble(str);
System.out.println(d);

【讨论】:

    【解决方案3】:

    您可以像这样将 String 值转换为 Double--

    double latitu=Double.parseDouble("21.2186653");
    

    【讨论】:

      【解决方案4】:

      如果错误出现在第 5 行,那是因为您试图用双 d 将您所拥有的任何内容添加到设置的单词中。 Java不知道你在set word中有什么,所以如果这个词是一个double的集合,你可以键入它。否则,您必须从“word.get(k)”返回的内容中解析双精度。

      尝试d+=(double) word.get(k),如果word是一组double 或 d+=double.valueOf(word.get(k))。如果您在设置的单词中有字符串。

      【讨论】:

        【解决方案5】:

        在您的示例代码的第 5 行中,您尝试添加一个带双精度的字符串值。这就是你收到错误的原因

        使用

        d += Double.parseDouble(word.get(k));
        

        而不是

        d+=word.get(k)
        

        【讨论】:

          猜你喜欢
          • 2022-01-16
          • 2011-08-11
          • 1970-01-01
          • 2014-07-24
          • 2013-03-23
          相关资源
          最近更新 更多