# [racket] Rounding

That's an overly specific solution. I believe the more general rounding
function taught in grade-school math would be:
(define (my-round n)
(floor (+ n 1/2)))
This is also untested. And it might need tweaking for negative numbers if
they are supposed to round away from zero, I forget how that works.
Carl Eastlund
On Sat, Mar 16, 2013 at 8:32 PM, Eric Dobson <eric.n.dobson at gmail.com>wrote:
>* The docs say that it is round to even, which is the standard for
*>* floating point numbers [1]. You can write your own rounding operator
*>* that rounds .5 up if need be.
*>*
*>* ;; Untested
*>* (define (my-round n)
*>* (let ((r (round n))) (if (= .5 (- n r)) (add1 r) r)))
*>*
*>* [1] http://en.wikipedia.org/wiki/Rounding#Round_half_to_even
*>*
*>* On Sat, Mar 16, 2013 at 7:21 AM, Eric Nadeau <nado18 at gmail.com> wrote:
*>* > Hi,
*>* >
*>* > I was having problems with a mathematical application I'm writing and
*>* narrowed it down to:
*>* >
*>* > (round 0.5)
*>* > (round (/ 1 2))
*>* > (round 1.5)
*>* > (round (/ 3 2))
*>* >
*>* > giving me
*>* >
*>* > 0.0
*>* > 0
*>* > 2.0
*>* > 2
*>* >
*>* > Since when is round 0.5 not giving 1?!
*>* >
*>* > Cheers,
*>* > Eric
*>* > ____________________
*>* > Racket Users list:
*>* > http://lists.racket-lang.org/users
*>* ____________________
*>* Racket Users list:
*>* http://lists.racket-lang.org/users
*>*
*>*
*-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130316/b580757a/attachment.html>