在java中为什么 1/3 == 0?

运行下面的代码结果为0?

public static void main(String[] args) {

double g = 1 / 3;

System.out.printf("%.2f", g);

}

回答:

两个操作数(1和3)是整数,因此使用整数算术(此处为除法)。将结果变量声明为double只会导致除法后发生隐式转换。

当然,整数除法会返回除法四舍五入的真实结果。因此,0.333…此处的结果四舍五入为0。(请注意,处理器实际上不进行任何舍入,但是您仍然可以这样考虑。)

另外,请注意,如果两个操作数(数字)均以浮点数给出;3.0和1.0,甚至只是第一个,然后使用浮点运算,就可以得到0.333…。

以上是 在java中为什么 1/3 == 0? 的全部内容, 来源链接: utcz.com/qa/434428.html

回到顶部