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

avg_1用了double型,怎么后面取平均值还是直接取得整数,没有小数。把sum_1换成double类型才出现小数,这是为什么?

sum_1=(i=i<i++){
    System..println(+(i+)+)score_1=Scanner(System.).nextInt()sum_1+=score_1}
avg_1avg_1=sum_1/System..println(+avg_1)

https://img1.sycdn.imooc.com/65d6147800013f7c17080849.jpg

正在回答

1 回答

这是因为在进行除法运算时,如果除数和被除数都是整数类型,那么结果也会是整数,会直接舍去小数部分。 比如,`int sum_1 = 5; int count_1 = 2; double avg_1 = sum_1 / count_1;` ,这里 `sum_1` 和 `count_1` 都是整数,做除法 `sum_1 / count_1` 的结果也是整数,即 2 。 而当把 `sum_1` 换成 `double` 类型,比如 `double sum_1 = 5.0; int count_1 = 2; double avg_1 = sum_1 / count_1;` ,此时因为有一个操作数是 `double` 类型,所以除法运算会按照浮点数的规则进行,得到有小数的结果 2.5 。 在 Java 中,如果想得到有小数的平均值,通常会把参与运算的数值都定义为 `double` 类型,像这样: ```java double sum = 5.0; int count = 2; double avg = sum / count; ``` 或者先把整数转换为 `double` 类型再做除法,像这样: ```java int sum = 5; int count = 2; double avg = (double)sum / count; ``` 您明白了吗?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

avg_1用了double型,怎么后面取平均值还是直接取得整数,没有小数。把sum_1换成double类型才出现小数,这是为什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信