Warum Macht Mathe.pow(x,y) Zählen als ein Double?

Ich Schreibe ein Java-Programm zur Berechnung, wie viel Essen wird es dauern, um ein monster zu einem bestimmten Niveau in My Singing Monsters. Wenn ich das Programm starte, sagt es, "kann nicht konvertieren von double zu int". Kann mir jemand erklären, warum das so ist? Hier ist das Programm.

int totalFood = 0;
int level = 1;
int levelMeal = 5*(Math.pow(2,level-1));
int mealNumber = 1;
int levelGoal = 1;
while(level != levelGoal)
{
  if(mealNumber != 5)
  {
    mealNumber += 1;
    totalFood += levelMeal;
  }
  else if(mealNumber == 5)
  {
    mealNumber = 0;
    level += 1;
  }
}
if(level == levelGoal)
{
  println("The total amount of food required for a monster to reach level " + levelGoal + " is " + totalFood + " food.");
}
  • Hier in der javadoc.
  • Wenn der Fehler angezeigt wird, die Zeile, die sagt "int levelMeal = 5*(Math.pow(2,Ebene-1));" markiert ist.
  • Welchen Datentyp pow gibt? Und um welche Art von Wert sind, die Sie versuchen zu zuordnen? Wenn Sie diese Fragen beantworten, ist die Antwort klar sein.
  • Sollte ich konvertieren Sie die levelMeal auf ein Doppel?
  • Die Fehler wirklich nicht für sich selbst sprechen.
InformationsquelleAutor Jason Chen | 2014-04-27
Schreibe einen Kommentar