J. Garrett Morris trevion at gmail.com
Sun Feb 12 18:28:40 EST 2006

```I think the function you're looking for is:

myRound n places = round (n / fromIntegral factor) * factor
where factor = 10 ^ (places - 1)

In this case, 10 ^ (places - 1) has integral type (either Int or
Integer).  I need it to be a fractional type to divide n by it, so I
use fromIntegral to convert it.

/g

On 2/12/06, Chatzianastassiou Achilleas <achatzianastassiou at hotmail.com> wrote:
> Thanks for the anwser Sebastian,
>
> this seems to work, however I am trying to implement something like
> Main> myfunction 123.456 2
> 120.0
>
>
> >From: Sebastian Sylvan <sebastian.sylvan at gmail.com>
> >To: Chatzianastassiou Achilleas <achatzianastassiou at hotmail.com>
> >Subject: Re: [Haskell-cafe] round function
> >Date: Sun, 12 Feb 2006 22:23:17 +0100
> >
> >On 2/12/06, Chatzianastassiou Achilleas <achatzianastassiou at hotmail.com>
> >wrote:
> > > Hi all,
> > >
> > > I am trying to implement a function that finds the significant figure of
> >a
> > > number to a specified point i.e. 2.55555 3 = 2.556. I have implemented
> > > something like:
> > >
> > > sig :: (RealFrac a, Integral b) => a -> Int -> a
> > > sig x y = round y
> > >
> > > However this doesn't work. Moreover at the Prelude when i type round
> >2.3333
> > > 2 i get an error.
> > > Any suggestions?
> > >
> >
> >Something like:
> >
> >myround n s = fromIntegral (round (n * factor)) / factor
> >     where factor = fromIntegral (10^s)
> >
> >Basically scaling it to bring the specified number of digits to the
> >left of the decimal point, then rounding, then scaling back.
> >
> >/S
> >
> >--
> >Sebastian Sylvan
> >+46(0)736-818655
> >UIN: 44640862
>
> _________________________________________________________________
> FREE pop-up blocking with the new MSN Toolbar – get it now!
> http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
>
> _______________________________________________