import java.util.Scanner;
public class test {
private static int number1 = 100;
private static int number2 = 1;
public static double avgAge() {
return (number1 + number2) / 2;
}
public static void main(String[] args) {
System.out.println("Average number: " + test.avgAge());
}
}
为什么test.avgAge()= 50.0而不是50.5?有没有办法输出50.5?
答案 0 :(得分:3)
计算以整数计算完成。
如果你用2代替2,你将获得50.5。我建议在该行添加注释,以便向未来的读者解释。 或者,您可以显式转换为double:
((double) (number1 + number2)) / 2
答案 1 :(得分:2)
只需替换此功能
import java.util.Scanner;
public class test {
private static int number1 = 100;
private static int number2 = 1;
public static double avgAge() {
return (number1 + number2) / 2.0;
}
public static void main(String[] args) {
System.out.println("Average number: " + test.avgAge()); //Average number: 50.5
}
}
答案 2 :(得分:0)
这是因为您在使用ints
进行计算之前将其作为double
返回。执行以下操作:
private static double number1 = 100.0;
private static double number2 = 1.0;
将这些更改为double
。另外,将2更改为2.0:
return (number1 + number2) / 2.0;
在此处详细了解ints
和doubles
:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
答案 3 :(得分:0)
答案 4 :(得分:-2)
return ((double)(number1 + number2)) / 2;