黑马程序员技术交流社区
标题:
数据类型转型的问题
[打印本页]
作者:
冯伟
时间:
2012-9-21 21:36
标题:
数据类型转型的问题
本帖最后由 sclsfw 于 2012-9-22 15:12 编辑
byte b=4;//编译通过
float f=4.0;//编译失败
整型默认是int,浮点型默认是double,毕老师说4是个整数常量,是固定的,赋值时会先判断是否在byte范围内再赋值,那么
4.0也是个浮点常量,同样是固定的,
也
在float范围内
,为什么double型的4.0赋给float要加f做强制转换,而int型的4赋给byte却不用强制转换
作者:
程振
时间:
2012-9-21 21:53
byte是8位二进制表示,是单字节,存储范围是-128~127。
因为4在存储范围内,转换没问题,编译通过。
如果 byte b = 500; 这样就编译失败,因为byte不能存储这么大的整形,隐私转换失败。
对于float f = 4.0; 因为精度问题,double的精度大,转成float类型是会损失精度,需显示转换。
作者:
霍永刚
时间:
2012-9-21 21:59
byte b =4在以上声明中,整数4从int类型隐式转换为 byte 类型。如果整数超出了byte类型的范围128到127,则将发生编译错误。
float a=4.0这样写会出错,double数据转换为float数据要丢失精度,所以float型变量强制后面用f结尾,
double a=4.0;这样就不会有错,不过性能方面可能会差一些.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2