floating point in python gives a wrong answer

Question:

I calculated the following:

>>> float(10.0-9.2)
0.800000000000000*7*

even doing 10.0-9.2 gave the above result. Why is the extra 7 coming in the result?

I’m on python 3.2.

Asked By: Rohan

||

Answers:

Floating point arithmetic has built-in problems as it’s based on a binary approximation of numbers.

There is a good explanation of this in the Python docs.

You can check out the decimal module if you need more exact answers.

Answered By: Gareth Latty

This is typical of binary floating-point arithmetic on all platforms. If your application is not tolerant of rounding errors within this margin of error, you can use Decimal objects instead.

Answered By: Andrew Gorcester

You can use round()

for example:

print(round(10 - 9.2, 2))
Answered By: Ali Bayat Mokhtari
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.