java结果不一样为什么啊?

来源:百度知道 编辑:UC知道 时间:2024/09/12 19:21:01
double x=2.5,a=8,y=4.7,n;
n=3*9%a+(int)((3+9)*x)/4*y;
System.out.println(n);
结果跟自己算的不一样啊。。为什么?

估计是你把运算优先级弄错了

double x=2.5,a=8,y=4.7,n;
n=3*9%a+(int)((3+9)*x)/4*y;
System.out.println(n);

3*9%a=3
(3+9)*x=30.0
((3+9)*x)/4*y=12965.46
(int)((3+9)*x)/4*y=12965
n = 3 + 12965 = 12968

是不是35.25,那你要认真看看各运算符的优先级

n=3*9%a+(int)(((3+9)*x)/4*y);
这样呢?

运算级错了