我正在制定一个计划,我已经得到了按摩:
错误:不兼容的类型:int不能转换为String if(Double.parseDouble(obtenerMedallasEqu(nombre))> promedio())
当我试图编译它时。说实话,我不知道如何纠正这个错误。
与代码的这一部分相关的方法
public int obtenerMedallasEqu(String nombre){
int i = 0;
int medallas = 0;
while (i<cantEquipos){
if(equipos[i].getNombre().equals(nombre))
medallas = medallas + equipos[i].getOro() + equipos[i].getPlata() + equipos[i].getBronce();
i++;
}
return medallas;
}
public double promedio(){
return (olimpiadasant[0] + olimpiadasant[1] + olimpiadasant[2] + olimpiadasant[3] + olimpiadasant[4])/5;
}
public String medallasOlimp(){
int i = 0;
String resultado = "";
String nombre = "";
while(i < cantEquipos){
if(Double.parseDouble(obtenerMedallasEqu(nombre)) > promedio())
resultado = "La cantidad de medallas obtenidas en Londres del " + i + " equipo es \n mayor que el promedio de medallas obtenidas en las \n 5 olimpiadas precedentes.";
i++;
}
return resultado;
}
也许你们可以帮助我,或者至少给我一个如何解决它的提示。 已经谢谢了。
答案 0 :(得分:3)
让我们看一下Double.parseDouble(obtenerMedallasEqu(nombre))
。 obtenerMedallasEqu(nombre)
的返回类型为int
。但是,Double.parseDouble(String s)
期望一个字符串,而不是一个int。因此你的错误。似乎Double.parseDouble(..)
调用是不必要的 - 它已经是一个整数,你不需要解析任何东西到一个双精度。尝试将该行更改为:
if( ((double) obtenerMedallasEqu(nombre)) > promedio())