Java中的简单划分--这是一个bug还是一个特性?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我正在Java应用程序中尝试这种简单的计算:

System.out.println("b=" + (1 - 7/10));

显然我想b=0.3但是我得到的是b=1...

什么?!为什么会发生这种事?

如果我:

System.out.println("b=" + (1 - 0.7));

我得到了正确的结果b=0.3...

这里出什么问题了?

提问于
用户回答回答于
用户回答回答于

在表达式7/10中使用了整数,整数7除以整数10为零。

你期待的是浮点除法。以下任何一项都将符合你预期的方式:

7.0 / 10
7 / 10.0
7.0 / 10.0
7 / (double) 10

扫码关注云+社区