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

2024-04-26 02:51:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: varjavaoutsystem计算器doubleprintln
2条回答

表达式组件将被计算为整数,即中间值被截断(10/3计算为32*4/3计算为2等等)。你知道吗

更改为以下内容将导致3.0

double var = 10.0 / 3.0 + 2.0 * 4.0 / 3.0 - 3.0;

在java中:

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

一切都被转换成int,这就是为什么它会给出这个结果。你知道吗

相关问题 更多 >