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);
值在hashmap中。第5行发生不兼容的类型错误。如何纠正它?
答案 0 :(得分:6)
如果d+=Double.valueOf(word.get(k));
可解析,则Double
行会正确地将word.get(k)
double d
值String
添加到Double
为String
。
然后,它之后的行将get
添加到double,这将不会编译。
你的循环中的最后一行没有任何意义,你在没有实际使用该值的情况下调用{{1}}。
答案 1 :(得分:0)
您可以使用Double.parseDouble()
例如:
String str="2.25";
double d=Double.parseDouble(str);
System.out.println(d);
答案 2 :(得分:0)
您可以将String值转换为Double -
double latitu=Double.parseDouble("21.2186653");
答案 3 :(得分:0)
如果错误在第5行,那是因为你试图用双d添加设置字中的任何内容。 Java不知道你在set字中有什么,所以如果单词是double的一组,你可以输入cast。否则你必须解析“word.get(k)”返回的双精度。
尝试d + =(double)word.get(k),如果word是一组double 或d + = double.valueOf(word.get(k))。如果你在设定词中有字符串。
答案 4 :(得分:0)
在第5行示例代码中,您尝试使用double添加字符串值。这就是你收到错误的原因
使用
d += Double.parseDouble(word.get(k));
而不是
d+=word.get(k)