更新:我試着改變getCalcMean()和calcMean()方法的返回類型以使其更加準確, Person類可以正常工作,但是在程序類中它現在說「不兼容類型:可能有損於從double到int的有損轉換」。在System.out.println(math1.calcMean(math1.getCalcMean()));我明白錯誤意味着什麼,但我不知道如何解決它,因爲最終結果需要翻倍,我認爲java可以計算double和int並獲得double。我究竟做錯了什麼? < < >><爲什麼我的平均增加不超過零?>轉換爲雙倍
我試圖計算999鍵入後總的平均數,但它一直顯示0,我不明白爲什麼。
有人能告訴我如何讓我的getCalcMean()方法顯示的平均值爲numTotal/count?
---類節目---
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int num = 0;
int count = 1;
Math math1 = new Math(num, count);
while (num != 999) {
num = kb.nextInt();
if (num != 999) {
math1.adder(num);
count ++;
System.out.println("Total till now:" + math1.getNumTotal());
}
}
math1.setCount(count);
System.out.println(math1.getNumTotal());
System.out.println(math1.calcMean(math1.getCalcMean()));
//System.out.println(math1.getNum());
kb.close();
/*Scanner kb = new Scanner(System.in);
String input = kb.nextLine();
Scanner scn = new Scanner(input);
int num = scn.nextInt();
Math math1 = new Math(num,0);
while(num != 999){
math1.adder(num);
input = kb.nextLine();
}
System.out.println(math1.getNumTotal());*/
} //main
}
----類數學----
public class Math {
private int num;
private int numTotal;
private double mean;
private int count;
/*public Math(int num, int numTotal){
this.num = num;
}*/
public Math(int num, int count) {
this.num = num;
this.count = count;
}
//get//
public int getNum(){
return this.num;
}
public int getNumTotal(){
return this.numTotal;
}
public double getCalcMean(){
return this.mean;
}
//set//
public void setNumTotal(int value){
this.numTotal = value;
}
public void setNum(int value){
this.num = value;
}
public void setCalcMean(double value){
this.mean = value;
}
public void setCount(int value){
this.count = value;
}
//other
/*public void adder(int num){
numTotal = numTotal + num;
}*/
public void adder(int num) {
this.num = num;
numTotal = numTotal + this.num;
}
//added after//
public double calcMean(int num){
this.numTotal = numTotal;
mean = numTotal/this.count;
return mean;
}
}
你永遠不會調用任何修改「mean」的方法。此外,'main'方法中的'counter'與'Math'類中的'count'不同。 – resueman