猿问

为什么 short s = 1 不报错

1int 类型,为什么 short s = 1 不报错,而 1.1double 类型 float f = 1.1 却报错?

胡子哥哥
浏览 1408回答 1
1回答

千巷猫影

因为int如果超了short范围,会被截取低位部分,没超会正常赋值. 但double类型是不可预测的,可能很简单的数字都占满了所用的字节,比如:0.5,在内存中其实表示为:0.499999999999这样的数字截取低位部分就是另一个数字了,这显然不能容许.所以float赋值小数必须加标记,便于编辑器在编译期间检查.
随时随地看视频慕课网APP

相关分类

Java
我要回答