This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: printf("%0.0f", 0.5) yields unexpected result (0)


I'm no accountant, but I believe there was an accounting principle in
certain specialties, long before IEEE P754 or even computerization,
which specified this rounding method.  Whether that was the source of
the idea, I don't know.  I can imagine that there may have been billing
situations where it was fairer to both parties to remove the bias on
these round-offs, which could have been quite common in manual
calculations.

Tim Prince
----- Original Message -----
From: "Nathan Sidwell" <nathan@codesourcery.com>
To: "Mo McKinlay" <mmckinlay@gnu.org>
Cc: "Horst von Brand" <vonbrand@inf.utfsm.cl>; "Marc Boeren"
<M.Boeren@guidance.nl>; <gcc-bugs@gcc.gnu.org>
Sent: Thursday, August 17, 2000 9:10 AM
Subject: Re: printf("%0.0f", 0.5) yields unexpected result (0)


> Mo McKinlay wrote:
> >
> > # Round to next even digit if .5, what's strange about that?
> >
> > I don't know what school you guys went to, but I was always taught
to
> > round up to the next number, not the next *even* number. I may be
being
> > incredibly stupid, but where on earth did the ISO committee get this
> > behaviour from? I've never heard of next-even-number-rounding before
in my
> > life :)
> Ah, yes round 1/2 up is OK for real numbers, but floating point
numbers
> are not real numbers. As such, if you rounded up you'd introduce a
bias.
> Strange as it may seem round to nearest even is better for floats.
>
> Quick example. Suppose the exact results were evenly distributed over
the
> set of half integers and the representable results were in the set of
> integers. Now rounding the 1/2 values up would introduce an average
> systematic bias of +1/4 rounding towards nearest even gives an average
> bias of zero.
>
> nathan
> --
> Dr Nathan Sidwell   ::   http://www.codesourcery.com   ::
CodeSourcery LLC
>          'But that's a lie.' - 'Yes it is. What's your point?'
> nathan@codesourcery.com : http://www.cs.bris.ac.uk/~nathan/ :
nathan@acm.org




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]