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.