public class HelloWlrld{
public syatic void main (Sting [] args ){
int m = 5;
int n = 7;
int x =( m*8/(n+2) ) %m;
System.out.println("m:" + m );
System.out.println("n:" + n);
System.out.println("x:" + x);
}
}
其中int x = (m*8/(n+2)) % m
(m * 8 / ( n +2) )没有强制转换类型 应该为 double类型 为什么结果为int类型 不是double类型大于int类型不能自动转换类型吗? 我有点迷糊
因为你定义了X是int型,所以得到的数据类型是int,计算的结果是有小数,但是X的数据类型是整形(int),所以系统舍弃了小数点。假如你定义
int x=6,y=3;
double z;
z=x/y;
System.out.println(z);
得到的就是2.0,系统自动转换你定义的double类型
因为m、n都是int型,除出来也是int类型