分数值用括号中的技巧加倍

时间:2015-08-02 19:43:05

标签: java casting double division

以下带有括号的代码会产生不同的输出。为什么呢?

System.out.println((double) 3/6);    // output 0.5

System.out.println((double) (3/6));  // output 0.0

2 个答案:

答案 0 :(得分:2)

因为在第一个示例中,您实际上正在执行((double) 3)/6,因此结果也是双倍的。

在第二个中,您正在执行整数除法,然后您正在转换结果。 3/6 = 0(double) 0 = 0.0

答案 1 :(得分:1)

在第一个示例中,在除以int之前,将3转换为double。根据Java类型转换规则,输出是double(在这种情况下为0.5)。

在第二个示例中,您将int除以int。由于您要分割的数字小于您要分割的数字,因此答案为零。然后你只是将int 0转换为double 0。