# Need help to understand basic arithmetics in Java

raul saini
Greenhorn
Posts: 18
Suppose we have this expression:

now i need to know how java performs this operation.
I know the precedence but still not able to figure out.

Thank You

fred rosenberger
lowercase baba
Bartender
Posts: 12228
36
you should probably read something like this. operators all have a precedence - some get done before others, just like in math.

If i recall correctly, anything inside parens is done first, so we'd get

6*10/5*5+14/2-9+20

Then, mult/div come next, in order from left to right

60/5*5+14/2-9+20

60/5*5+14/2-9+20

12*5+14/2-9+20

60+14/2-9+20

60+7-9+20

then, addition and subtraction, in order from left to right

67-9+20
58+ 20
78

raul saini
Greenhorn
Posts: 18
Thank you very much, I was performing multiple calculation at a time.

fred rosenberger
lowercase baba
Bartender
Posts: 12228
36
well, you can, as long as you complete ALL operations of a given precedence before any others. I could have just as easily done this:

6*10/5*5+14/2-9+(10*2);

6*10/5*5+14/2-9+20; //take care of everything inside parens

60 + 7 - 9 + 20 // take care of all multiplication and division

78 // take care of all addition and subtraction.

Istvan Kovacs
Ranch Hand
Posts: 100
Note that with integer types, you can encounter issues due to losing data when performing calculations, which may make it seem that Java violates rules of arithmetics. For example:
(a / b * c) = (a * c / b) may not hold:

Campbell Ritchie
Sheriff
Posts: 50666
83
That problem with integer arithmetic applies to most computer languages.

Rob Spoor
Sheriff
Posts: 20707
68
With floating point calculations there can even be a difference between (a+b)+c and a+(b+c).