How to extract dyadic fraction from float
The decodeFloat
function seems useful for this. Technically, you should also check that floatRadix
is 2, but as far I can see this is always the case in GHC.
Just be careful since it does not simplify mantissa and exponent. Here, if I evaluate decodeFloat (1.0 :: Double)
I get an exponent of -52 and a mantissa of 2^52 which is not what I expected.
Also, toRational
seems to generate a dyadic fraction. I am not sure this is always the case, though.