Exact floating point values formatting for Haskell (printf "%a")
root
This module contains functions for formatting and parsing floating point values as C99 printf/scanf functions with format string %a
do.
Format is [-]0xh.hhhhhp±ddd
, where h.hhhhh
is significand as a hexadecimal floating-point number and ±ddd
is exponent as a decimal number. Significand has as many digits as needed to exactly represent the floating point value, fractional part may be ommitted.
Infinity and NaN are represented as ±inf
and nan
accordingly.
For example, (π ∷ Double) = 0x1.921fb54442d18p+1
(exactly).