gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:49:47 25 4
gpt4 key购买 nike

我正在编写一个 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

正如您在 documentation 中看到的那样,Math.pow() 按设计返回 double,但如果您需要 int,则必须执行显式转换。

关于java - 为什么 Math.pow(x,y) 算作 Double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23326902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com