[Haskell-cafe] Why 'round' does not just round numbers ?

Janis Voigtlaender voigt at tcs.inf.tu-dresden.de
Mon Oct 27 10:37:02 EDT 2008


Ketil Malde wrote:
> Janis Voigtlaender <voigt at tcs.inf.tu-dresden.de> writes:
> 
> 
>>>Since just about every floating point operation involves some sort of
>>>loss of precision, repeated rounding is a fact of life. 
> 
> 
>>Of course. But that was not the point of the discussion...
> 
> 
> Well, allow me to contribute to keeping the discussion on topic by
> stating that when I was in school, I was taught to round up.  Now if
> you will excuse a momentary digression:
> 
> The point *I* wanted to make is that we have two qualitatively different
> rounding modes: round up on 0.5, or round to even (or randomly, or
> alternating), and they make sense in different contexts.
> 
> Doing computations with fixed precision, you keep losing precision,
> and rounding bias accumulates - thus the need to use some non-biased
> rounding. 
> 
> Doing (small scale) calculations on paper, you can avoid repeated
> rounding, and only round the result.  In which case rounding up is
> okay, you don't introduce the amount of bias as with repeated
> rounding.  And if your input happens to be truncated, rounding up
> becomes the right thing to do. 
> 
> Of course, Haskell should discard the rather tasteless IEEE754 crud,
> and do its calculations on infinite streams of digits.  Then, rounding
> upwards after 'take'ing a sufficient amount of decimals will be the
> right thing to do.

Yes, that all makes sense.

And I did not intend to cut you short.

-- 
Dr. Janis Voigtlaender
http://wwwtcs.inf.tu-dresden.de/~voigt/
mailto:voigt at tcs.inf.tu-dresden.de


More information about the Haskell-Cafe mailing list