Java中的简单划分 - 这是一个错误还是一个功能?

2022-09-01 16:20:10

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

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

显然,我希望输出是 ,但我实际上得到了。b=0.3b=1

什么?!为什么会发生这种情况?

如果我写:

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

我得到了正确的结果,那就是.b=0.3

这到底是怎么回事?


答案 1

您使用的是整数除法。

请尝试。7.0/10


答案 2

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

您期望的是浮点除法。以下任何一项都将按照您的预期方式进行评估:

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

推荐