将一个整型的常量(字面值为int)赋给一个byte或者short类型的变量,只要不超过byte或short取值范围,就可以通过编译
将一个浮点型的常量(字面值的double)赋给一个float类型的变量,即使不超过float的取值范围,也会出现编译错误请问为什么Java中会有这种双重标准的设置?int类型的常量只要不超过范围就可以赋给更小的类型,而double类型的常量就算没有超过float的取值范围,也不能直接赋值给float(除非加f后缀或者强制类型转换),这样对于float来说是不是有点不公平?
byte a = 1;//编译通过
short b = 1;//编译通过
float c = 1.2;//编译报错
将一个浮点型的常量(字面值的double)赋给一个float类型的变量,即使不超过float的取值范围,也会出现编译错误请问为什么Java中会有这种双重标准的设置?int类型的常量只要不超过范围就可以赋给更小的类型,而double类型的常量就算没有超过float的取值范围,也不能直接赋值给float(除非加f后缀或者强制类型转换),这样对于float来说是不是有点不公平?
byte a = 1;//编译通过
short b = 1;//编译通过
float c = 1.2;//编译报错
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货