double a=1;
double b=2;
double c=3;
double result = a*b+c/2+2*(a+b)/c;
System.out.println("result="+result);为什么输出结果为5.5,没有报错在java虚拟机中,都是默认结果为int,我这里是double,按说应该报错的,高的到低的转换,但是没有保存,求大神指点,谢谢了!
3 回答
JjayG
TA贡献27条经验 获得超6个赞
1*2 + 3/2 +2*(1+2)/3
2 + 1.5 + 2 = 5.5
你的result定义的是double型的,计算中出现了小数,那么结果就会使double型的呀。。。所以5.5也没错吧?
困惑的点没有get到
JustWannaHugU
TA贡献452条经验 获得超796个赞
double result = a*b+c/2+2*(a+b)/c;
a,b,c都是double类型
结果也正确啊,还有是表数范围小的自动向表数范围大的转换你记错了
添加回答
举报
0/150
提交
取消