double frac = (double) 3/2
在最长的时间里,我认为这只会将int除法的结果转换为double,但是frac的预期值为1.5。为什么这样做?
答案 0 :(得分:2)
double frac = (double) 3/2;
相当于
double frac = ((double) 3)/2;
前3个被转换为double
(并变为3.0
),然后执行浮点除法,返回1.5
。
如果在施法之前进行了分割,如
double frac = (double) (3/2);
结果将是1.0
,因为整数除法将在演员之前执行。