Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 作为整数计算的双表达式_Java - Fatal编程技术网

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

(事实上,常数的转换可以在编译时完成,但您应该明白这一点;重要的是操作数的类型)