为什么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