为了账号安全,请及时绑定邮箱和手机立即绑定

强制转换类型

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

正在回答

3 回答

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

int x=6,y=3;

double z;

z=x/y;

System.out.println(z);

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

慕粉1143151228 提问者

那如果m或者n有一个是double型.那么返回的是什么类型!???
2017-08-01 回复 有任何疑惑可以回复我~
#2

慕仔7678733 回复 慕粉1143151228 提问者

主要原因为你赋值给了X,而X是int型的,和计算的数据类型无关。
2017-08-01 回复 有任何疑惑可以回复我~
#3

慕粉1143151228 提问者 回复 慕仔7678733

好的 谢谢
2017-08-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1162914    人
  • 解答问题       17550    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

强制转换类型

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信