float t=3.5;
错误原因:3.4数值默认是double类型,t是float类型的,这两个类型在内存中点的字节数不同,如果赋值给t,那么就要进行数据类型转换,将由double转换成float类型,double类型的数据表示的范围要比float类型的数据表示范围要大,所以不能进行自动类型转换,只能强制转换,这时可以写成float f = (float)3.5;或者在3.5后面加上'f'或'F',即float f = 3.5f;
byte a=3
之所以不会出错原因是:前面分析跟上述一个道理,但是 byte和int之间可以相互进行隐式转换,只要a=3中的3这个数在byte的数据范围内,就会进行隐式转换,所以3已经自动转换成byte了,所以不会报错!
注意:是3转换成byte类型,而不是a转换成int类型,a的类型已定义好了,不会再变
|