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 你执行了两个不同的语句,你很困惑,你得到的是不同的输出吗?为什么?忘掉编程,想想数学和

我有两个java语句:

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