Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和Python中运算符优先级的不同结果_Java_Python_Javac_Operator Precedence_Operations - Fatal编程技术网

Java和Python中运算符优先级的不同结果

Java和Python中运算符优先级的不同结果,java,python,javac,operator-precedence,operations,Java,Python,Javac,Operator Precedence,Operations,我注意到,当我用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); 表达式组件将作为整数计算,即中间值被截断10/3计算为3,2*4/3计算为2,依此类推 更改为以下内容将导致3.0: 表达式组

我注意到,当我用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);

表达式组件将作为整数计算,即中间值被截断10/3计算为3,2*4/3计算为2,依此类推

更改为以下内容将导致3.0:


表达式组件将作为整数计算,即中间值被截断10/3计算为3,2*4/3计算为2,依此类推

更改为以下内容将导致3.0:

在java中:

10 / 3 + 2 * 4 / 3 - 3
(10 / 3) + (2 * (4 / 3))) - 3
3 + (2 * 1) - 3
3 + 2 - 3
2
所有内容都被强制转换为int,这就是它给出这个结果的原因。

在java中:

10 / 3 + 2 * 4 / 3 - 3
(10 / 3) + (2 * (4 / 3))) - 3
3 + (2 * 1) - 3
3 + 2 - 3
2

所有内容都被强制转换为int,这就是它给出这个结果的原因。

Java遵循与python不同的顺序或运算符:

Java:PMDRAS-括号、乘法、除法、余数、加法、减法


Python:PEMDAS-括号、指数、乘法、除法、加法、减法。

Java遵循与Python不同的顺序或运算符:

Java:PMDRAS-括号、乘法、除法、余数、加法、减法


Python:PEMDAS-括号、指数、乘法、除法、加法、减法。

这里没有强制转换。它只是整数除法,这里没有强制转换。它只是整数除法。既然两种语言之间不同的运算符在OP的问题中不存在,这有什么帮助?既然两种语言之间不同的运算符在OP的问题中不存在,这有什么帮助?