java中(double)(1/2)和(double)1/2之间的区别

Sae*_*san 3 java double casting

我想知道之间的区别

System.out.print((double)1/2);
System.out.print((double)(1/2));
Run Code Online (Sandbox Code Playgroud)

我得到的第一个答案是 0.5 ,但第二个答案给出 0.0 。提前致谢。

Era*_*ran 7

(double)(1/2)首先计算1/2,得到0(int 除法),然后将结果转换为double( 得到0.0)。

(double)1/2首先转换1double,然后除以1.02浮点除法),得到0.5. 这相当于1.0/21/2.0