Java表达式的值及数据类型
表达式分别为:System.out.println(1+4/5+(int)5.2/2.5);System.out.println(1+4/5+(int)(5.2/2.5)...
表达式分别为:
System.out.println(1+4/5+(int)5.2/2.5);
System.out.println(1+4/5+(int)(5.2/2.5));
System.out.println(1+4/5+5.2/2.5);
System.out.println(1.0+4/5+5.2/2.5);
System.out.println(1+4/5.0+5.2/2.5);
值分别为:
3.0
3
3.08
3.08
3.88
数据类型也可以从值中看出来,但是不清楚为什么是这样的?能否有高手解释下为什么出这样的值并且是这样的数据类型?多谢! 展开
System.out.println(1+4/5+(int)5.2/2.5);
System.out.println(1+4/5+(int)(5.2/2.5));
System.out.println(1+4/5+5.2/2.5);
System.out.println(1.0+4/5+5.2/2.5);
System.out.println(1+4/5.0+5.2/2.5);
值分别为:
3.0
3
3.08
3.08
3.88
数据类型也可以从值中看出来,但是不清楚为什么是这样的?能否有高手解释下为什么出这样的值并且是这样的数据类型?多谢! 展开
3个回答
展开全部
System.out.println(1+4/5+(int)5.2/2.5);
4/5为整数除法,结果为0。(int)5.2/2.5是先将5.2转换为整型得5,再除以2.5,得2.0(注意结果为浮点数),所以最后结果是浮点数,3.0
System.out.println(1+4/5+(int)(5.2/2.5));
由于5.2/2.5加了括号,所以是先做浮点除法,再转换为整型,最后结果也是整型,得3
System.out.println(1+4/5+5.2/2.5);
1+0+2.08=3.08,没什么好说的
System.out.println(1.0+4/5+5.2/2.5);
1.0是浮点数,4/5先按整数除法来,在转换为浮点数(得0.0),5.2/2.5=2.08,结果是浮点数3.08
System.out.println(1+4/5.0+5.2/2.5);
由于4/5.0中的除数是浮点数,所以这一步按浮点数除法来计算,得0.8,结果为3.88
4/5为整数除法,结果为0。(int)5.2/2.5是先将5.2转换为整型得5,再除以2.5,得2.0(注意结果为浮点数),所以最后结果是浮点数,3.0
System.out.println(1+4/5+(int)(5.2/2.5));
由于5.2/2.5加了括号,所以是先做浮点除法,再转换为整型,最后结果也是整型,得3
System.out.println(1+4/5+5.2/2.5);
1+0+2.08=3.08,没什么好说的
System.out.println(1.0+4/5+5.2/2.5);
1.0是浮点数,4/5先按整数除法来,在转换为浮点数(得0.0),5.2/2.5=2.08,结果是浮点数3.08
System.out.println(1+4/5.0+5.2/2.5);
由于4/5.0中的除数是浮点数,所以这一步按浮点数除法来计算,得0.8,结果为3.88
展开全部
以下两点可以告诉你为什么会这样:
1、在java中,如果乘“*”和除“/”的两端都是整数,那么它会将结果的小数部分去掉,所以"4/5"的结果是0,而"4/5.0"的结果是"0.8",而加“+”和减“-”则不影响。
2、第一个表达式(1+4/5+(int)5.2/2.5)中,只是把"5.2"转换为了整数"5",而"2.5"是小数,所以结果中有一位小数。
1、在java中,如果乘“*”和除“/”的两端都是整数,那么它会将结果的小数部分去掉,所以"4/5"的结果是0,而"4/5.0"的结果是"0.8",而加“+”和减“-”则不影响。
2、第一个表达式(1+4/5+(int)5.2/2.5)中,只是把"5.2"转换为了整数"5",而"2.5"是小数,所以结果中有一位小数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询