2014-12-01 3 views
0
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-й строке. Как ее исправить?Как преобразовать строку в double

+0

все время это происходит в слове – user3387277

ответ

0

Вы можете использовать Double.parseDouble()

Eg:

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

Линию d+=Double.valueOf(word.get(k)); будет правильно добавить значение word.get(k)Double ваших double d, при условии, что Stringявляется интерпретируемого в Double.

Строка после этого, однако, добавляет String к двойному, который не будет компилироваться.

Последняя строка в вашей петле не имеет никакого смысла, вы вызываете get, фактически не используя значение.

+0

я есть пары значений, как этот аб 0.07890 кулачком 0,12435 – user3387277

+0

@ user3387277 эти значения должны будет хорошо. Если вы не сталкиваетесь с «NumberFormatException», у вас все в порядке. – Mena

0

Вы можете преобразовать строковое значение Удвоить как this--

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

Если ошибка находится в 5-й строке, потому что вы пытаетесь добавить, что вы имеете в наборе слова с двойной д. Java не знает, что у вас есть в заданном слове, поэтому вы можете набирать текст, если слово является двойным. В противном случае вам нужно разобрать двойной, из которого возвращается слово «word.get (k)».

try d + = (double) word.get (k), если слово представляет собой набор двойных или d + = double.valueOf (word.get (k)). если в заданном слове есть строка.

0

В вашей пятой строке кода примера вы пытаетесь добавить строковое значение с помощью double. Вот почему вы получаете ошибку

Используйте

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

вместо

d+=word.get(k) 
Смежные вопросы