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
前者先转换1为double,然后进行浮点除法。
后者首先执行(1/4)整数除法,然后再将结果转换为double。
Java中的规则是,如果两个操作数都是整数,则该操作为整数除法;否则,该操作为整数除法。如果任何操作数是浮点的,则为浮点除法。