### Re: adding numbers and floating point errors

by spiritway (Vicar)
 on Nov 22, 2006 at 22:00 UTC ( #585622=note: print w/replies, xml ) Need Help??

Computers don't handle fractional floating point values very well. Anything other than powers of 1/2 (or their multiples) results in a form that repeats endlessly. This results in truncation or rounding errors, and these will tend to accumulate when you iterate.

You might want to consider keeping your data in rational form (e.g., bigrat) while you are performing your calculations. Doing this can save you lots of problems with rounding or truncation errors. Once you've finished your calculations you can convert your rationals into floating point format, if you wish, for display.

• Comment on Re: adding numbers and floating point errors

Replies are listed 'Best First'.
Re^2: adding numbers and floating point errors
by ikegami (Pope) on Nov 22, 2006 at 22:32 UTC

Anything other than powers of 1/2 (or their multiples) results in a form that repeats endlessly.

Not quite. Anything other than sums of powers of 2 result in a form that repeats endlessly.

Sums of powers of 2 do not repeat endlessly. For example, 0.3125 is not a power of 2, yet it does not repeat because it is a sum of powers of 2 (2-2 + 2-4).

Note that "powers of 1/2" and "powers of 2" are synonymous.

Update: Nevermind. What you said and what I said are mathematically equivalent. 0.3125 is a multiple of a power of 2 (5 * 2-4).

Create A New User
Node Status?
node history
Node Type: note [id://585622]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2018-06-20 19:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Should cpanminus be part of the standard Perl release?

Results (117 votes). Check out past polls.

Notices?