Thanks, that's exactly what I needed.

But I wonder why such a handy function is not native in REBOL.
AFAIK, it's missing in ANSI C library as well.

[EMAIL PROTECTED] wrote:
> 
> [EMAIL PROTECTED] wrote:
> >
> > Hi,
> >
> > That works, but it's not exactly what I wanted. I want to round a
> > decimal and print it, not convert it to string, shorten it and then
> > print it.
> >
> 
> I haven't stress-tested this for valid ranges, but here's a QAD
> 
>      round: func [n [number!] p [integer!] /local factor] [
>          factor: power 10.0 absolute p
>         (to-decimal to-integer (n * factor + 0.5)) / factor
>      ]
> 
> which does
> 
>     >> round 3.1415926535 4
>     == 3.1416
>     >> round 3.1415926535 3
>     == 3.142
>     >> round 3.1415926535 2
>     == 3.14
>     >> round 3.1415926535 1
>     == 3.1
>     >> round 3.1415926535 0
>     == 3
> 
> However, beware of overflow...
> 
>     >> round (186282.25 * 60 * 60) 1
>     == -188377359.2
> 
> Maybe that'll give you a kick-start.
> 
> -jn-

-- 
Michal Kracik

Reply via email to