[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