如果我加上括号,为什么输出会有所不同

All*_*akk 1 java casting parentheses

嗨,我只是想知道为什么

System.out.println((double) 1/4);
Run Code Online (Sandbox Code Playgroud)

打印出0.25

System.out.println((double) (1/4));
Run Code Online (Sandbox Code Playgroud)

打印0.0

Jir*_*sek 9

前者先转换1double,然后进行浮点除法。

后者首先执行(1/4)整数除法,然后再将结果转换为double

Java中的规则是,如果两个操作数都是整数,则该操作为整数除法;否则,该操作为整数除法。如果任何操作数是浮点的,则为浮点除法。