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/53803330/

相关文章:

gcc - GCC/ARM 上的快速除法

java - 将报表名称存储在 Interface 、 Enum 中,还是作为报表处理程序类中的常量?

c - 32 位处理器上的 64 位/64 位余数查找算法?

c - 除法结果始终为零

java - 使用密码的 Windows 7 登录脚本

assembly - 没有 32 位寄存器的 32 位/16 位有符号整数除法?

python - 使用 Python v3.x 和 C API 解释 Python v2.5 代码(关于整数除法)

java - 试图从 eclipse 启动 tomcat,但找不到 index.jsp

java - 自定义 javax.swing.JFileChooser 以包含额外的 JTextField

java - 使用java插入表时出现SQl错误