[erlang-questions] convert strings like "1e-8" to floats.
Jesper Louis Andersen
Wed Feb 8 16:35:44 CET 2017
Another example is OCaml, which supports entering integers as
- : int = 1000000
which is very nifty, but unique to OCaml and thus not too portable.
On Wed, Feb 8, 2017 at 12:16 PM Mikael Pettersson <mikpelinux@REDACTED>
> Oleksii Semilietov writes:
> > Hi all!
> > I playing with converting binaries and lists to floats and I found
> > something what I can't solve via elegant way. I believe it's my leakage
> > understanding floats.
> > So, what is different between 1e-8 and 1.0e-8 ?
> > For example we have float as list "0.01". It is easy to convert it to
> > float just via list_to_float("0.01").
> > But when floats coming from external world as binaries or lists which
> > like "1e-8", and not like "1.0e-8", I can't find proper way to convert
> > For example in PHP both 1e-8 and 1.0e-8 is equivalent
> > var_dump(floatval("1e-8") === floatval("1.0e-8")) returns true.
> > In Erlang
> > list_to_float("1.0E-8") =:= 0.00000001
> > true
> > but
> > list_to_float("1E-8") =:= 0.00000001.
> > ** exception error: bad argument in function list_to_float/1 called as
> > list_to_float("1E-8")
> > How to convert it via right way?
> Write your own conversion routine.
> Your mistake is assuming literals like floats have the same look and feel
> regardless of language or environment. That's in general not true.
> You may also consider the different notation for integers with non-decimal
> base, e.g. 0xabba vs 16#abba, or character literals, etc.
> What it means is that a tool written in one language but processing source
> code for another, must be prepared to do all conversions on its own without
> relying on ready-made services in the implementation language.
> erlang-questions mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions