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)
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)
2024-02-21
这是因为在进行除法运算时,如果除数和被除数都是整数类型,那么结果也会是整数,会直接舍去小数部分。 比如,`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; ``` 您明白了吗?
举报