【发布时间】:2015-04-06 08:10:33
【问题描述】:
考虑以下语句:
byte by = 5; //works fine
literal '5' 是 int 类型,并且小到可以放入 byte 类型的变量中。编译器在这里进行隐式类型转换(从 int 到 byte)。
现在考虑以下场景:
float fl = 5.5; //compilation error
literal '5.5' 是 double 类型,也小到可以放入变量 类型浮动。为什么我们需要像这样显式类型转换:
float fl = (float) 5.5; //works fine
为什么编译器在浮点数的情况下不为我们进行转换?
【问题讨论】: