为什么Math.pow(x,y)算作双重? [英] Why Does Math.pow(x,y) Count as a Double?
本文介绍了为什么Math.pow(x,y)算作双重?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在编写一个Java程序来计算在My Singing Monsters中将怪物提升到一定水平需要多少食物。当我运行程序时,它说,无法从double转换为int。有人可以解释为什么会这样吗?这是程序。
I'm writing a Java program to calculate how much food it will take to get a monster to a certain level in My Singing Monsters. When I run the program, it says, "cannot convert from double to int". Can someone explain why this is? Here's the program.
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
,但如果需要 int
然后必须执行显式演员。
As you can see in the documentation, Math.pow()
returns a double
by design, but if you need an int
then an explicit cast must be performed.
这篇关于为什么Math.pow(x,y)算作双重?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文