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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沙子 中级黑马   /  2014-12-16 22:11  /  1124 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a = 3+5;
float f = 5+5.5;
这两个哪个会编译出现异常。为什么会出现。求详细解答。

10 个回复

倒序浏览
我初学者,试着回答下,不建议参考
应该都不会出现异常吧
int a = 3+5;  都是int类型的,而且+的优先级大于=,所以也不会出现问题
float f = 5+5.5;  这个一个int类型的,和一个float相加会自动转换成float类型的,所以也不会出现异常吧,除非。。。float 这个单词出错了:P
回复 使用道具 举报
int a = 3+5;    这句话不会报错 ,因为java默认的整数数据类型是int的,左右两边都是int的,不会出现类型转换问题
float f = 5+5.5;  java默认浮点数是double类型的,所以5.5是double类型,于是整个表达式右边被提升为double,这时候再赋值给float类型的,会丢失精度。必须要上强制转换才行。
回复 使用道具 举报
float = 5+5.5会编译出现异常,需要在5.5后面添加一个f就可以了
回复 使用道具 举报
常量后面加F表示是float型,不加F的,整数默认为int型,浮点数默认为double型.由于5。5是浮点型,所以后面默认是double.
回复 使用道具 举报
小数,默认为double型,加起来也是double型,不能直接赋给float
回复 使用道具 举报
第二个,浮点类型中默认的double类型。所以5.5后加一个f或F。整型中默认的为int类型,所以没有问题
回复 使用道具 举报
float在内存中占四个字节,double在内存中占8个字节,java中小数默认的是double型,所以在Java中定义小数默认都是double类型,又因为double类型>float类型,无法完成自动转换,所以float f = 5+5.5; 会报错。
回复 使用道具 举报
浅听 中级黑马 2014-12-16 23:53:22
9#
小数型常量需要在数字后面加个f
回复 使用道具 举报
Bali 中级黑马 2014-12-17 00:11:19
10#
第二条;后面要加一个后缀名 F或f
回复 使用道具 举报
找寻小龙猫 来自手机 中级黑马 2014-12-17 00:22:08
11#
dier第二个会出现错误,小数在java中默认类型是double,所以在进行运算时会损失精度…
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马