Java 作为整数计算的双表达式
如果我编译此代码:Java 作为整数计算的双表达式,java,Java,如果我编译此代码: int摄氏度=41; 双倍结果=摄氏度*9/5+32 我得到的结果是105.0,但将摄氏度转换为双精度得到的结果是105.8 int摄氏度=41; 双倍结果=(双倍)摄氏度*9/5+32 为什么需要强制转换?摄氏*9/5+32是一个只包含整数值的表达式;它是一个整数表达式。因此,它是使用整数算法计算的 最后,将整数结果赋给双精度变量时,整数将转换为双精度 在(双精度)摄氏度*9/5+32中,首先将摄氏度值转换为双精度。然后我们想用一个双精度乘以9,所以整数9被转换成双精度9.
int摄氏度=41;
双倍结果=摄氏度*9/5+32代码>
我得到的结果是105.0,但将摄氏度转换为双精度得到的结果是105.8
int摄氏度=41;
双倍结果=(双倍)摄氏度*9/5+32代码>
为什么需要强制转换?摄氏*9/5+32
是一个只包含整数值的表达式;它是一个整数表达式。因此,它是使用整数算法计算的
最后,将整数结果赋给双精度变量时,整数将转换为双精度
在(双精度)摄氏度*9/5+32
中,首先将摄氏度值转换为双精度。然后我们想用一个双精度乘以9,所以整数9被转换成双精度9.0。然后我们想把一个double除以5,所以整数5被转换成double 5.0。最后,我们希望将值32添加到double中,从而将其转换为32.0
(事实上,常数的转换可以在编译时完成,但您应该明白这一点;重要的是操作数的类型)