java - 整数除法 : Why is the result of 1/3 == 0?

标签 java integer-division

我正在编写这段代码:

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

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

最佳答案

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

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

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

关于java - 整数除法 : Why is the result of 1/3 == 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61232662/

相关文章:

java - Spring Data - MongoDB - 更多与 和 相关的术语

java - 为什么我的 Java 类在从包目录内部编译时无法编译?

java - 使用 MOXy 和 XPath,是否可以解码两个属性列表?

`n//1` 的 Python 回合

optimization - 有效地将无符号值除以 2 的幂,四舍五入 - 在 CUDA 中

emulation - 不动点整数除((“fractional division”)算法

java - 使用 UnetSocket 在 unetstack 中创建客户端和服务器节点之间的通信

java - 我什么时候应该关闭实体管理器?

java - 在 Java 中除以整数会产生错误的值 2147483

python - Python中带有负操作数的整数除法和模运算