黑马程序员技术交流社区
标题:
类型转换问题
[打印本页]
作者:
沙子
时间:
2014-12-16 22:11
标题:
类型转换问题
int a = 3+5;
float f = 5+5.5;
这两个哪个会编译出现异常。为什么会出现。求详细解答。
作者:
抬头45°
时间:
2014-12-16 22:25
我初学者,试着回答下,不建议参考
应该都不会出现异常吧
int a = 3+5; 都是int类型的,而且+的优先级大于=,所以也不会出现问题
float f = 5+5.5; 这个一个int类型的,和一个float相加会自动转换成float类型的,所以也不会出现异常吧,除非。。。float 这个单词出错了:P
作者:
qig123
时间:
2014-12-16 22:31
int a = 3+5; 这句话不会报错 ,因为java默认的整数数据类型是int的,左右两边都是int的,不会出现类型转换问题
float f = 5+5.5; java默认浮点数是double类型的,所以5.5是double类型,于是整个表达式右边被提升为double,这时候再赋值给float类型的,会丢失精度。必须要上强制转换才行。
作者:
I空空
时间:
2014-12-16 22:33
float = 5+5.5会编译出现异常,需要在5.5后面添加一个f就可以了
作者:
I空空
时间:
2014-12-16 22:35
常量后面加F表示是float型,不加F的,整数默认为int型,浮点数默认为double型.由于5。5是浮点型,所以后面默认是double.
作者:
x277402301t
时间:
2014-12-16 23:26
小数,默认为double型,加起来也是double型,不能直接赋给float
作者:
飞跃离开
时间:
2014-12-16 23:36
第二个,浮点类型中默认的double类型。所以5.5后加一个f或F。整型中默认的为int类型,所以没有问题
作者:
zcyemenye
时间:
2014-12-16 23:46
float在内存中占四个字节,double在内存中占8个字节,java中小数默认的是double型,所以在Java中定义小数默认都是double类型,又因为double类型>float类型,无法完成自动转换,所以float f = 5+5.5; 会报错。
作者:
浅听
时间:
2014-12-16 23:53
小数型常量需要在数字后面加个f
作者:
Bali
时间:
2014-12-17 00:11
第二条;后面要加一个后缀名 F或f
作者:
找寻小龙猫
时间:
2014-12-17 00:22
dier第二个会出现错误,小数在java中默认类型是double,所以在进行运算时会损失精度…
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2