为了账号安全,请及时绑定邮箱和手机立即绑定

求解,各位大佬大神!!

求解,各位大佬大神!!

Felix_Sun 2019-07-29 12:30:04
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类型,就会正常显示了

查看完整回答
反对 回复 2019-07-29
  • Felix_Sun
    Felix_Sun
    好吧,谢谢,顺便问一句,double类型的会自己四舍五入计算吗?
  • 驱虎吞狼猎
    驱虎吞狼猎
    java里的四舍五入方式是没有的,换句话说四舍五入是中国独有(大概)的计算方式
  • Felix_Sun
    Felix_Sun
    哦哦,也就是说 Java里也是有四舍五入的语法的,需要操作一下对吧。
  • 1 回答
  • 0 关注
  • 641 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信