我注意到在java和python中编译这个操作时有两个不同的结果。
10 / 3 + 2 * 4 / 3 - 3
导致java = 2.0
在python = 3.0
我也在许多计算器中执行此操作,结果是3.0可以解释java如何解决这个问题吗?
double var = 10/3+2*4/3-3;
System.out.println(var);
答案 0 :(得分:3)
表达式组件将被评估为整数,即中间值被截断(10/3
评估为3
,2*4/3
评估为2
,依此类推。)
更改为以下内容将导致3.0
:
double var = 10.0 / 3.0 + 2.0 * 4.0 / 3.0 - 3.0;
答案 1 :(得分:2)
在java中:
10 / 3 + 2 * 4 / 3 - 3
(10 / 3) + (2 * (4 / 3))) - 3
3 + (2 * 1) - 3
3 + 2 - 3
2
所有东西都被转换为int,这就是为什么它会给出这个结果。
答案 2 :(得分:0)
Java 遵循与 Python 不同的顺序或运算符:
Java : PMDRAS - 括号、乘法、除法、余数、加法、减法。
Python : PEMDAS - 括号、指数、乘法、除法、加法、减法。