[Haskell-cafe] Parsing floating point numbers
Malcolm Wallace
Malcolm.Wallace at cs.york.ac.uk
Mon Mar 9 06:45:01 EDT 2009
Bjorn Buckwalter <bjorn.buckwalter at gmail.com> wrote:
> What is your preferred method of parsing floating point numbers (from
> String to Float/Double)? Parsec it seems only does positive floats out
> of the box and PolyParse requires the float to be on scientific form
> (exponential).
Thanks for the bug report. Polyparse is now fixed. New version
(polyparse-1.3) available on Hackage.
And my apologies. This was purely an oversight - the real-world
use-case at the time I wrote the code for Text.Parse.parseFloat was
entirely dependent on scientific notation, and I neglected the more
usual case.
For those looking for a template to implement textual float-parsing that
is faster (or has better error messages) than the H'98 Read class, feel
free to translate this code into your own parser combinator library of
choice:
http://www.cs.york.ac.uk/fp/polyparse/haddock/src/Text/Parse.html#parseFloat
(Note that the actual instances of the Parse class for Float and Double
use "parseSigned parseFloat" to deal with non-positive numbers.)
Regards,
Malcolm
More information about the Haskell-Cafe
mailing list