A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 执笔梦 金牌黑马   /  2013-11-20 17:07  /  1127 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

long l = 20l  ,int a =2;
double d = l/2;
点解一个long型和一个int 型运算后的结果会是  double型或是   long型?

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

3 个回复

正序浏览
java中规定,短类型可以被自动转换为长类型,包含了隐形转换。
再给你说几道类似的题。
byte b = 1 + 1;                             //对,(1+1)没有超过byte数值范围
byte b = 1; b = b + 1;                 //错,java中规定长类型无法自动转换为短类型,需要强制类型转换,b=(byte)(b+1);
byte b = 1; b = b += 1;                     //对,包含一个隐形的类型转换,等价于,b=(byte)(b+1);b=b;

评分

参与人数 1技术分 +1 收起 理由
To + 1

查看全部评分

回复 使用道具 举报
你试下将 int c 改为double c 应该也行。我不太明白
回复 使用道具 举报
long下面是一个代码:
long l = 20l;
int i = 2;
int c = l / i;
会报错,说无法将long转化为int,因此结果为long

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马