自动类型转换,所有量都向最“大”的那个量转换。(a+b)是float,2是int,所以2会被转换为float,然后计算float/float得到float。x%y是int,接下来计算float+int,int也转成float,最后是float+float得到float。如果你的(a+b)强制转换目标的double,那这个表达式最后得到也是double