在java中,
有整数类型(char/ short/ int/ long/ byte)
有浮动类型(float/ double)
boolean与C语言不同,有布尔类型(),而不是整数类型.
问题1)
是否有一个通用规则用于转换(根据JLS)会话,哪种类型可以转换为另一种类型?出于常识,我知道,boolean不允许使用积分和浮动类型
问题2)
请帮我理解以下输出的原因:
/*
* Casting rules for primitive types
*/
double aDoubleValue = 30000000000000000000.123438934;
int doubleToInt = (int)aDoubleValue; //stores max value 2147483647, makes sense!!
byte doubleToByte = (byte)aDoubleValue; //stores -1, why not 127?
short doubleToShort = (short)aDoubleValue; // stores -1, why not 32767?
long doubleToLong = (long)aDoubleValue; // stores 9223372036854775807, makes sense!!
float doubleToFloat = (float)aDoubleValue; // …Run Code Online (Sandbox Code Playgroud)