
20 Apr
2014
20 Apr
'14
9:12 p.m.
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. Thanks