我正在尝试在java中运行此代码
double health = ((level*level +10000) * (level/150)/6) +100;
它总是100(或最后一个数字) 在这个实例级别= 1,但即使用数字1替换变量级别也不会修复此问题。完成后,答案应该大约等于110。请帮我修复这段代码,这样我就可以继续编程了
我已经尝试将这一行分成多行单独的代码,但仍无法修复。被授予,这使用了一些相当大的分数,但它之前有效,而不是一下子就停止了工作。请帮我解决这个问题,
提前感谢。
答案 0 :(得分:2)
((level*level +10000) * (level/150)/6)
得到最接近的数字, 0 。
所以你的代码应该是这样的:
public static void main(String[] args) {
double level = 10.0;
double health = ((level*level +10000) * (level/150)/6) +100;
System.out.println(health);
}
}
答案 1 :(得分:1)
假设level
是int
,level/150
将自动覆盖整数或0.您可以通过将level
更改为{{1}来解决此问题},或将float
更改为150
。
答案 2 :(得分:0)
修好了。我需要放置(双倍)前面的分数
double health = ((1*1 +10000) * ((double)1/150)/6) +100;
没有它,数字太小,程序必须假设它是0