Piy*_*agi 5 java floating-point character type-conversion literals
char c1 = 123; //Compiles fine
char c2 = 123456; //Error: cannot convert from int to char
Java足够聪明,可以确定整数是否足够小以转换为字符.为什么它无法将非常小的浮点文字转换为浮点数?例如:
float f1 = 0.3; //Error: cannot convert from double to float
float f2 = 0.3f; //Compiles fine
char c =某些整数文字可能会编译但浮动f =某些浮点文字永远不会编译.为什么?
PS:我知道默认情况下浮点文字被视为double
0.3 被视为double,因此它的二进制表示形式需要64位,并且它不能适应浮点而不会丢失精度,因此如果没有显式强制转换,则无法将其赋值给float变量.
另一方面,如果为char变量分配char类型范围内的int文字(例如123),则不会丢失数据.
两个赋值(int到char变量和double到float变量)都需要缩小基元转换.
如果变量的类型是byte,short或char,则可以使用缩小的基元转换,并且常量表达式的值可以在变量的类型中表示.
| 归档时间: | 
 | 
| 查看次数: | 99 次 | 
| 最近记录: |