[Haskell-cafe] Problem with percentage function?
Chapman, Anthony Sergio
a.s.chapman.10 at aberdeen.ac.uk
Sun Apr 20 21:12:29 UTC 2014
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.
More information about the Haskell-Cafe