黑马程序员技术交流社区
标题:
数据类型转换问题
[打印本页]
作者:
就是我
时间:
2016-3-28 11:19
标题:
数据类型转换问题
float f=3.45;//会报错,系统默认小数位double类型,默认整数位int类型
也就是说直接写出来的整数 123,都默认为int类型
但是 byte b=123;却不会报错
有人说是编译器可以识别整数具体值进行提前判断
但是3.45在我看来也在float类型中啊,float类型范围比double类型小,应该可以识别判断在范围内才是啊
有点矛盾
作者:
坚持到底
时间:
2016-3-28 12:38
float和double是精度的不同,就是小数点后面的位数越多就越精确.小数默认为double,你把double给float当然有可能会损失精度(小数点后面的位数可能会减少)所以不行.
作者:
zhangtaocg
时间:
2016-3-28 13:49
123为int类型的二进制:00000000 00000000 00000000 01111011 而byte 是2个字节为 00000000 01111011 所以可以赋值,而double类型的小数位比float多,例如1.200和1.200000;计算机认为1.200000比1.200精度高,所以把double类型赋值给float有失精度,所以会报错。。
作者:
qing31657552
时间:
2016-3-28 19:33
是不是后边忘加f了呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2