为什么Math.pow(x,y)算作双重? [英] Why Does Math.pow(x,y) Count as a Double?

查看:143
本文介绍了为什么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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆