我在写这段代码:

public static void main(String[] args) {
    double g = 1 / 3;
    System.out.printf("%.2f", g);
}


结果为0。这是为什么,如何解决此问题?

最佳答案

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

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

另外,请注意,如果两个操作数(数字)均以浮点数形式给出; 3.0和1.0,或者甚至只是第一个,然后使用浮点运算,为您提供0.333...

关于java - 整数除法:为什么1/3 == 0的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58125913/

10-12 19:08