[Haskell-cafe] Problem with percentage function?

Chapman, Anthony Sergio a.s.chapman.10 at aberdeen.ac.uk
Sun Apr 20 21:19:30 UTC 2014

Forgot to mentions that it works fine with odds such a 0.333333333333 or 0.55555555555 but not for evens such as 0.444444


From: Haskell-Cafe <haskell-cafe-bounces at haskell.org> on behalf of Chapman, Anthony Sergio <a.s.chapman.10 at aberdeen.ac.uk>
Sent: 20 April 2014 22:12
To: Haskell Cafe
Subject: [Haskell-cafe]  Problem with percentage function?

Good evening everyone.

I've made a percentage function for my application (with help from the internet) which is as follows.

-- Turns a number into a percentage
toPerc :: Double -> Double
toPerc x = 100*(myRound x 4)
-- Rounds a number to s decimal points
myRound n s = fromIntegral (round (n * factor)) / factor
    where factor = fromIntegral (10^s)

I would it to round to 2 decimal places no matter what the size of the input is

ei toPerc 0.22222222222222  --- = 22.22
    toPerc 0.22342222222222  --- = 22.34

The problem is that what I actually get is 22.220000000000002

If anyone has any suggestions on how to solve this problem or know of a different/better way to convert to percentage please let me know.

Haskell-Cafe mailing list
Haskell-Cafe at haskell.org

More information about the Haskell-Cafe mailing list