关于java中强制转换为题

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,按说应该报错的,高的到低的转换,但是没有保存,求大神指点,谢谢了!

掌门飞哥
浏览 1496回答 3
3回答

JjayG

1*2 + 3/2 +2*(1+2)/32 + 1.5 + 2 = 5.5你的result定义的是double型的,计算中出现了小数,那么结果就会使double型的呀。。。所以5.5也没错吧?困惑的点没有get到

JustWannaHugU

        double result = a*b+c/2+2*(a+b)/c;a,b,c都是double类型结果也正确啊,还有是表数范围小的自动向表数范围大的转换你记错了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java