# Diff between (a+b)/2 and a+(b-a)/2

--

Hello People,
Do you know what is the difference between (a+b)/2 and a+(b-a)/2?
if not, then don’t worry. Here I’m with a good explanation. Mathematically it seems to be the same.

But in programming, you might get weird results. Let’s take an example.

`int a = 1000000000;int b = 2000000000;print((a+b)/2);print(a+(b-a)/2);Output:-6474836481500000000`

As we can see that (a+b)/2 is giving me -647483648 and a+(b-a)/2 is giving me 1500000000 i.e correct.

Why is this happening?
Since integers can store a maximum value of 2³¹ -1 (2147483647) in java. After that, it will go to the negative side. If you will do a+b first it will cross the integer limit and it will give you a negative result. But if you will do b-a(will be smaller) first and divide it by 2 ( will get much smaller ) and then add a.

`int a = 2000000000;int b = 1000000000;print(a+b);print((a+b)/2);print(b-a);print((b-a)/2);print(a+(b-a)/2);Output:-1294967296-647483648-1000000000-5000000001500000000`

Conclusion:
We should always use a+(b-a)/2 instead of (a+b)/2.

If you like this article and found it interesting and knowledgeable, do hit the 👏 button and share it with your colleagues and friends.