简单的Java划分 - 这是一个错误还是一个特性?

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

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

我正在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

扫码关注云+社区