From: Henry G. Baker
Subject: Re: Odd (actually even) ROUND behavior
Date:
Message-ID: <hbakerCy6GHo.Mys@netcom.com>
In article <··············@netcom.com> ····@Yost.COM (Dave Yost) writes:
>Could someone explain why lisp rounds the way it does?
>
> "if number is exactly halfway between two integers
> (that is, of the form integer + 0.5) then it is
> rounded toward the one that is even (divisible by 2)."
> - Steele (CLtL2)
>
>I've never heard of this practice, before or since computers.
The exact same question was asked in comp.lang.scheme just 2 weeks ago.
This type of rounding is known as 'unbiased' rounding, since there is
no bias towards 0, -infinity or +infinity. The numerical analysts have
indicated that they they that this is a good idea.
The so-called 'standard' rounding -- i.e., floor(x+0.5) -- is an
approximation, and (at least until computers came along) was not the
only way to 'round' a number to an integer.
If you like round(x)=floor(x+0.5), then by all means use it.
Henry Baker
Read ftp.netcom.com:/pub/hbaker/README for info on ftp-able papers.