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

Henning Thielemann lemming at henning-thielemann.de
Mon Oct 27 06:00:05 EDT 2008


On Mon, 27 Oct 2008, L.Guo wrote:

> I think this is unresonable. then try it in GHC 6.8.3.
>
>
> Prelude> round 3.5
> 4
> Prelude> round 2.5
> 2
>
>
> Is there any explanation about that ?

It's the definition we learnt in school ...

I think one reason is that repeated rounding should not be worse than 
rounding in one go. Consider the rule 'use ceiling when the first removed 
digit is 5'. Then

0.45 - (round to one place) -> 0.5 - (round to integer) -> 1

but

0.45 - (round to integer) -> 0


This is avoided by the school definition.


More information about the Haskell-Cafe mailing list