Java 意外输出,浮点和整数之间存在混淆
我有两个java语句:Java 意外输出,浮点和整数之间存在混淆,java,math,floating-point,Java,Math,Floating Point,我有两个java语句: System.out.println(2*(5/2+5/2)) 这将生成输出8,但在下一行: System.out.println(2*5/2+2*5/2) 这将生成输出10 现在我的困惑是为什么它会产生不同的输出 请有人描述一下。谢谢注意,ints之间的除法生成一个int(向下舍入) 要获得准确的值,必须使用floats: 2 * (5.0 / 2 + 5.0 / 2) == 10 你执行了两个不同的语句,你很困惑,你得到的是不同的输出吗?为什么?忘掉编程,想想数学和
System.out.println(2*(5/2+5/2))代码>
这将生成输出8
,但在下一行:
System.out.println(2*5/2+2*5/2)代码>
这将生成输出10
现在我的困惑是为什么它会产生不同的输出
请有人描述一下。谢谢注意,int
s之间的除法生成一个int
(向下舍入)
要获得准确的值,必须使用float
s:
2 * (5.0 / 2 + 5.0 / 2) == 10
你执行了两个不同的语句,你很困惑,你得到的是不同的输出吗?为什么?忘掉编程,想想数学和执行顺序。试着计算并检查差异的原因没有浮动。您正在进行整数除法。根据bodmas
规则,除法首先执行,我认为应该是2*5/2+2*5/2=>2*2+2*2=>8
2 * (5.0 / 2 + 5.0 / 2) == 10