问:能否在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量?
答:不行,我们不能在没有强制类型转换的前提下将一个 double 值赋值给 long 类型的变量,因为 double 类型的范围比 long 类型更广,所以必须要进行强制转换。
问:java 中 3*0.1 == 0.3 将会返回什么?true 还是 false?
答:false,因为浮点数不能完全精确的表示出来,一般都会损失精度。
问:java 中 float f = 3.4; 是否正确?
答:不正确,3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换 float f = (float)3.4; 或者写成 float f = 3.4F; 才可以。
|