如果我有如下表达式:
double d = floatVar / intVar;
intVar
将被提升为 a float
,然后返回的float
结果将转换为 adouble
并分配给d
. 但是如果我有一个很长的表达式会发生什么,例如:
double d = floatVar / intVar * shortVar + charVar + intVar2;
会不会把所有的变量都提升为a float
,然后返回的float
结果会转换为adouble
并赋值给d
?
另外,如果我有以下情况:
double d = (floatVar / intVar) * shortVar + charVar + intVar2;
将intVar
转换为a float
,whileshortVar
和charVar
将转换为an int
,然后将int
from的返回结果shortVar + charVar + intVar2
转换为a并与返回的结果float
相乘,这个返回的结果将转换为double并赋值给?float
(floatVar / intVar)
float
d