I was doing some float operations using python. But when I tried to divide 9999999999999999 by 2 (9999999999999999/2) I got 5000000000000000.0 which is wrong. I already know the issue 8.6-8.4 != 0.2 (issue with binary representation) but I couldn't figure out what is the issue. Can anyone explain this?
Python float doesnt have enough precision to distinguish a difference at around 1e-16, so in Python, 99...9 (as you wrote) is stored equal to 10...00 (with as many 0s as there were 9s above).
Interactive shell:
You can also use the decimal module in python for accurate floating point arithmetic :