programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering OS Languages Paradigms IDEs Build Tools Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# 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: 12563
49
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: 12563
49
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
Marshal
Posts: 56529
172
That problem with integer arithmetic applies to most computer languages.

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