嗨,我只是想知道为什么
System.out.println((double) 1/4);
打印出0.25
但是
System.out.println((double) (1/4));
打印出0.0
答案 0 :(得分:9)
前者首先将1
强制转换为double
,然后进行浮点除法。
后者首先将(1/4)
作为整数除法,然后才将结果转换为double
。
Java中的规则是,如果两个操作数都是整数,则运算是整数除法;如果任何一个操作数是浮点的,就是浮点除法。
答案 1 :(得分:4)
表达式(double) 1/4
等于((double) 1)/4
。也就是说,它将整数值1
转换为浮点值1.0
,然后将该浮点值除以4
,得到0.25
。
表达式(double) (1/4)
首先使用整数进行除法。这样就得到了整数值0
,然后将其转换为double
。
答案 2 :(得分:-1)
确保1或4是double。声明:
var分子= 1.0