问答详情
源自:3-8 Java中运算符的优先级

强制转换类型

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类型不能自动转换类型吗?    我有点迷糊

提问者:慕粉1143151228 2017-08-01 12:08

个回答

  • 慕仔7678733
    2017-08-01 13:12:43

    因为你定义了X是int型,所以得到的数据类型是int,计算的结果是有小数,但是X的数据类型是整形(int),所以系统舍弃了小数点。假如你定义

    int x=6,y=3;

    double z;

    z=x/y;

    System.out.println(z);

    得到的就是2.0,系统自动转换你定义的double类型

  • Sea_one
    2017-08-01 12:44:03

    因为m、n都是int型,除出来也是int类型