[erlang-questions] convert strings like "1e-8" to floats.
Richard Carlsson
carlsson.richard@REDACTED
Wed Feb 8 16:42:07 CET 2017
Both the NNN_NNN and the Base#NNN notation go back to Ada, so they are not
particular either for OCaml or Erlang, respectively.
http://archive.adaic.com/standards/83lrm/html/lrm-02-04.html
/Richard
2017-02-08 16:35 GMT+01:00 Jesper Louis Andersen <
jesper.louis.andersen@REDACTED>:
> Another example is OCaml, which supports entering integers as
>
> # 1_000_000;;
> - : 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>
> wrote:
>
>> 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 of
>> > 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
>> looks
>> > like "1e-8", and not like "1.0e-8", I can't find proper way to convert
>> it.
>> >
>> > For example in PHP both 1e-8 and 1.0e-8 is equivalent
>> > var_dump(floatval("1e-8") === floatval("1.0e-8")) returns true.
>> > Javascript 1E-8 === 1.0E-8 is also 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
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170208/f4539486/attachment.htm>
More information about the erlang-questions
mailing list