On Tue, Oct 28, 2008 at 04:07:12PM +0000, Bart Massey wrote: > I'm just saying that the name "round" is unfortunate, since > there's no single universally accepted mathematical > definition for it. For this reason many programming > languages either don't provide it or provide a different > version. The names "roundHalfUp" and "roundHalfEven" are > much better: they each correspond to a well-known > mathematical function that is codified in an IEEE standards > document. > > If it were up to me, I'd deprecate round in Haskell' and > make the documentation point to these other rounding > functions. > > Our solution in Nickle (http://nickle.org), BTW, was to > provide floating point with user-settable mantissa precision > and a default precision of 256 bits. For all practical > purposes we know of, this makes worrying about the edge > cases for rounding pointless. Kahan has a nice paper on > this that I can't find right now.
Isn't it quite common to have numbers like 0.5 as input? (as an example of a number that's exactly representable in any binary floating point format, but whose rounded value depends on rounding convention. I don't feel strongly on the question, but was somewhat surprised to find that round is present, for the reasons you mention. floor (x+0.5) is not a bad way to round... no one will mistakenly thing that it'll do something smart with half-integers. David _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe