
23 Apr
2010
23 Apr
'10
1:33 p.m.
Hi guys, I'm working with Haskell for a little project at the university and I'm stuck with a problem. I'm trying to generate a random number in the interval [0.0,1.0]. It is straightforward for me to implement the function on ints: rand :: IO Int rand = do r <- newStdGen let (x1, r2) = randomR (0,1) r print x1 return x1 However, if I try to generate a Float instead, I always get an Arithmetic Overflow error that I can not understand. Code: rand :: IO Float rand = do r <- newStdGen let (x1, r2) = randomR (0.0::Float,1.0::Float) r print x1 return x1 Do you have any clue why this happens? Thanks in advance, -- Giorgio