public?class?HelloWorld?{
????public?static?void?main(String[]?args)?{
????????
//?創建對象,對象名為hello
HelloWorld?hello?=?new?HelloWorld();
????????//?調用方法,傳入兩門課程的成績
hello.calcAvg(94,?81);
}
/*
*?功能:計算兩門課程考試成績的平均分并輸出平均分
*?定義一個包含兩個參數的方法,用來傳入兩門課程的成績
*/
public?void?calcAvg(int?score1,?int?score2){
????int?sum?=?score1?+?score2;
????double?avg?=?sum/2;
????System.out.println(avg);
}結果問題:??int?sum?=?score1?+?score2;
????double?avg?=?sum/2;
????System.out.println(avg);這樣輸出的結果是87.0,而????double?sum?=?score1?+?score2;
????double?avg?=?sum/2;
????System.out.println(avg);這樣輸出的結果是87.5,這是為什么啊,求解啊 各位大佬!
1 回答
已采納

驅虎吞狼獵
TA貢獻47條經驗 獲得超39個贊
public?void?calcAvg(int?score1,?int?score2){???? ????int?sum?=?score1?+?score2;???? ????double?avg?=?sum/2;???? ????System.out.println(avg); }
主要看這里的代碼.
double?avg?=?sum/2;
sum是int類型,這個時候除以2所得到的結果也是int類型,(94+81)/2=87,然后再轉為double類型就變成了87.0
如果你把score1和score2都定義為double類型,就會正常顯示了
添加回答
舉報
0/150
提交
取消