-- !!! conversions: Double <=> Rational/Integer things
--
import Data.Ratio
main = putStr (show r42 ++ "\n" ++
show nu42 ++ ", " ++
show de42 ++ "\n" ++
show nu42d ++ ", " ++
show de42d ++ "\n" ++
show s2 ++ ", " ++
show e2 ++ "\n" ++
show s ++ ", " ++
show e ++ "\n" )
where
d42 :: Double
r42 :: Rational
nu42, de42 :: Integer
nu42d, de42d :: Double
d42 = 42
r42 = toRational d42
nu42 = numerator r42
de42 = denominator r42
nu42d= fromInteger nu42
de42d= fromInteger de42
(s,e)= decodeFloat (nu42d / de42d )
(s2,e2) = decodeFloat d42