Bartlomiej Lewandowski
Bartlomiej Lewandowski

Reputation: 11180

Why are there mistakes in calculations of floats and doubles?

I always wondered why the floats aren't really acurate when computers should give the precise answer. I read in a book somewhere that it is better to compare a variable to a number around the value we want, since the calculate value may not always be a whole number as we expect. How do machines caluclate these divisions? Any links to websites are welcome :)

Upvotes: 1

Views: 326

Answers (2)

Omi
Omi

Reputation: 16

a simple answer would be that a computer uses a limited amount of digits to represent a number.

If you try to represent i.e. the number 1/7 in decimal it would be 0.14285714... and so on infinitely. The same happens for computer i.e. trying to represent the number 1/10 (0.1 in decimal) in binary which becomes an infinite series as-well.

Therefor sometimes you don't get the most accurate number.

Upvotes: 0

Tom
Tom

Reputation: 1052

Jon Skeet mentions it here (scroll down till you see "double d=0.3;" drawn on a slide): http://msmvps.com/blogs/jon_skeet/archive/2009/11/02/omg-ponies-aka-humanity-epic-fail.aspx

A more detailed answer here: http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html

Upvotes: 3

Related Questions