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

看代码,为什么结果是87.0,而不是87.5?

看代码,为什么结果是87.0,而不是87.5?

sunny86 2016-03-13 15:29:33
(num1+num2)/2.0时结果为什么就是87.5?
查看完整描述

15 回答

?
qq_镇_0

TA贡献2条经验 获得超8个赞

因为num1和num2是int类型去除2以后再转换为double类型,所以除2时,结果还是int类型,没有小数点。

查看完整回答
8 反对 回复 2016-03-14
?
你去狗带

TA贡献1条经验 获得超2个赞

语句执行顺序为,,先计算num1+num2结果是int类型,然后计算/2(int/int=int),结果还是int,但是结果是87,小数点后面的丢失了。然后再赋值给avg将87转换为double型87.0.

但是如果(num1+num2)/2.0就是(int/double=double)就不会发生数据丢失了,就会是87.5.

查看完整回答
2 反对 回复 2016-03-13
?
慕斯卡5018863

TA贡献1条经验 获得超1个赞

int类型不能被强制转化成double类型,所以avg还是int类型

查看完整回答
1 反对 回复 2016-03-14
?
weibo_我的太阳366_0

TA贡献1条经验 获得超0个赞

向上类型转换,比如一个整型+""就成字符串了

查看完整回答
反对 回复 2016-03-16
?
木子添

TA贡献1条经验 获得超0个赞

基本数据类型的自动转换和强制转换问题~

查看完整回答
反对 回复 2016-03-14
?
会飞的鱼666

TA贡献1条经验 获得超0个赞

语句执行顺序为:先计算num1+num2结果是int类型,然后计算/2(int/int=int),结果还是int,但是结果是87,小数点后面的丢失了。然后再赋值给avg将87转换为double型87.0.

但是如果(num1+num2)/2.0就是(int/double=double)就不会发生数据丢失了,就会是87.5.


查看完整回答
反对 回复 2016-03-14
?
wl温良

TA贡献18条经验 获得超10个赞

因为num1和num2都是整形的,所以在(num1+num2)/2这些步距都是整形的,此时计算答案已经是87了,但如果除以 2.0就不一样了,一个整形数据和浮点型数据乘除会自动进行类型转换,结果会是浮点型,

查看完整回答
反对 回复 2016-03-14
?
lzjccc

TA贡献23条经验 获得超7个赞

两个整型的进行运算是不是得到一个整型,一个整型的结果赋给一个double类型的avg变量,所以结果就是87.0啊

查看完整回答
反对 回复 2016-03-14
?
shaonian

TA贡献2条经验 获得超0个赞

两个double类型相加会等于一个INT型?

感觉是精度问题 

可以用BigDecimal试试我也是网上看的不对见谅

查看完整回答
反对 回复 2016-03-14
  • shaonian
    shaonian
    。。。。没看到他的参数是int型的我的错
?
侯礼

TA贡献6条经验 获得超0个赞

上面参数增加精度,改成94.00和81.00

查看完整回答
反对 回复 2016-03-14
?
QA_PHP

TA贡献2条经验 获得超0个赞

类型转换问题!有时间自己可以研究研究类型转换,希望你有收获!

查看完整回答
反对 回复 2016-03-14
?
懒喵

TA贡献5条经验 获得超0个赞

double  num1,double  num2          就可以了  或者只选择其中一个这样定义

在计算avg的时候  int 转换double 小数点后面的数会舍掉  在这里就没有四舍五入这种说法了。所以是87.0

查看完整回答
反对 回复 2016-03-13
?
qq_刻骨铭心_2

TA贡献1条经验 获得超0个赞

(num1+num2)/2结果是int类型(两个整数取模总会吧?)为87,赋值给avg后自动类型转换成double类型为87.0;(num1+num2)/2.0结果就是double类型不用类型转换,为87.5.

查看完整回答
反对 回复 2016-03-13
?
HansonQ

TA贡献223条经验 获得超56个赞

你可以分开看这段代码,

(num1+num2)/2   分母和分子都是整型 那么结果肯定是整型。
当你分母是double类型的时候,程序会先根据你的返回类型将你的分母或者分子做一个隐式的类型转换。


查看完整回答
反对 回复 2016-03-13
  • 15 回答
  • 1 关注
  • 3238 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号