[erlang-questions] fread() for numbers - beginner question

BranchingFactor <>
Mon Apr 20 11:43:18 CEST 2009


I'd like to io_lib:fread() a number from a string.  Unfortunately, if I use "~f" for floating point number, then fread rejects numbers that don't have fractional parts:

> io_lib:fread("~f", "1").
{error,{fread,float}}
> io_lib:fread("~f", "1."). 
{error,{fread,float}}

(I find this very strange, since both 1 and 1. can be represented in a floating point number.)
And if I use "~d" for decimal integers, then fread won't read past the decimal point:

> io_lib:fread("~d", "1.0").
{ok,[1],".0"}

What is the easiest way to scan a number from a string in erlang?  Ideally it would scan any number in any input format and return an Erlang object that satisfied the is_number() predicate.

Thank you,

BF




      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20090420/8461e581/attachment.html>


More information about the erlang-questions mailing list