Java中的简单划分 - 这是一个错误还是一个功能?
我正在Java应用程序中尝试这个简单的计算:
System.out.println("b=" + (1 - 7 / 10));
显然,我希望输出是 ,但我实际上得到了。b=0.3
b=1
什么?!为什么会发生这种情况?
如果我写:
System.out.println("b=" + (1 - 0.7));
我得到了正确的结果,那就是.b=0.3
这到底是怎么回事?
我正在Java应用程序中尝试这个简单的计算:
System.out.println("b=" + (1 - 7 / 10));
显然,我希望输出是 ,但我实际上得到了。b=0.3
b=1
什么?!为什么会发生这种情况?
如果我写:
System.out.println("b=" + (1 - 0.7));
我得到了正确的结果,那就是.b=0.3
这到底是怎么回事?
您使用的是整数除法。
请尝试。7.0/10
您在表达式 7/10 中使用了整数,整数 7 除以整数 10 表示零。
您期望的是浮点除法。以下任何一项都将按照您的预期方式进行评估:
7.0 / 10
7 / 10.0
7.0 / 10.0
7 / (double) 10