为什么Math.pow(x,y)算作Double?

我正在编写一个Java程序来计算将“我的唱歌的怪兽”中的怪兽达到一定水平所需要的食物。当我运行程序时,它说:“无法从double转换为int”。有人可以解释为什么吗?这是程序。

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.");

}

回答:

您必须这样做:

int levelMeal = (int) (5*(Math.pow(2,level-1)));

^

this is a cast

如您在文档中所看到的,Math.pow()它会double按设计返回a

,但是如果需要,int则必须执行显式强制转换。

以上是 为什么Math.pow(x,y)算作Double? 的全部内容, 来源链接: utcz.com/qa/406957.html

回到顶部