6
如果我沒有弄錯,「0.5」是十進制數;從而使其成爲浮動價值。但爲什麼Java告訴我,這是一個雙?。返回語句檢測爲java的錯誤,他說:「不兼容的類型:雙重可能有損轉換爲浮動」給定浮點值可能有損於從double到float的轉換?
public float typeDmgMultiplr(String type,String type2){
if(type.equalsIgnoreCase("grass")){
if(type2.equalsIgnoreCase("grass"))
return 0.5;
else if(type2.equalsIgnoreCase("poison"))
return 0.5;
else if(type2.equalsIgnoreCase("fire"))
return 0.5;
else
return 2.0;
}
else if(type.equalsIgnoreCase("fire")){
if(type2.equalsIgnoreCase("grass"))
return 2.0;
else if(type2.equalsIgnoreCase("poison"))
return 1.0;
else if(type2.equalsIgnoreCase("fire"))
return 0.5;
else
return 0.5;
}
else if(type.equalsIgnoreCase("water")){
if(type2.equalsIgnoreCase("grass"))
return 0.5;
else if(type2.equalsIgnoreCase("poison"))
return 1.0;
else if(type2.equalsIgnoreCase("fire"))
return 2.0;
else
return 0.5;
}
else{
if(type2.equalsIgnoreCase("grass"))
return 2.0;
else if(type2.equalsIgnoreCase("poison"))
return 0.5;
else if(type2.equalsIgnoreCase("fire"))
return 1.0;
else
return 1.0;
}
}
'0.5'默認爲'double'類型。附加一個'f'使其成爲'float' - '0.5f' –
'double'是一個浮點數,它具有* double *精度,'float'是具有* single *精度的浮點數。如果你只寫'0.5',那麼它被解釋爲'double'。要使用'float'類型,你必須把它寫成'0.5f'。 –
除非有很好的理由,否則不要使用「浮動」。大多數時候這只是一個不必要的頭痛。 – user2357112