我注意到在java和python中编译这个操作时有两个不同的结果。
10 / 3 + 2 * 4 / 3 - 3
java = 2.0的结果
in python = 3.0
我也在许多计算器中执行这个操作,结果是3.0,谁能解释一下java是如何处理这个的呢?
double var = 10/3+2*4/3-3;
System.out.println(var);
发布于 2014-10-29 19:41:32
表达式组件将被计算为整数,即中间值被截断(10/3
计算结果为3
,2*4/3
计算结果为2
,等等)。
更改为下面的内容将导致3.0
double var = 10.0 / 3.0 + 2.0 * 4.0 / 3.0 - 3.0;
发布于 2014-10-29 19:44:01
在java中:
10 / 3 + 2 * 4 / 3 - 3
(10 / 3) + (2 * (4 / 3))) - 3
3 + (2 * 1) - 3
3 + 2 - 3
2
所有的一切都被转换为int,这就是为什么它会给出这样的结果。
发布于 2021-06-13 03:37:42
Java遵循与python不同的顺序或操作符:
Java : PMDRAS -括号,乘法,除法,余数,加法,减法.
Python : PEMDAS -分段,指数,乘法,除法,加法,减法.
https://stackoverflow.com/questions/26639137
复制相似问题