Re: float_to_list(X)

Bob Ippolito <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <CACwMPm9HhOidaNKAvRhMkV-DiEDkOFY+EVcmgpMo1YUeSff+7Q@mail.gmail.com>
~p is a lossless format for floats that uses a conservative number of
digits (since R12B02). See OTP-7084. The implementation was based on
mochinum:digits/1 from mochiweb.

On Fri, May 7, 2021 at 03:26 Richard O'Keefe <[email protected]> wrote:

> No, making float_to_list/1 a wrapper for format... does not make sense.
> float_to_list/1 is meant to give you an accurate representation of the
> value.  Two different floats, no matter how small the difference,
> should result in different lists.  It's meant for converting a float
> to text that you can send to another machine and reconstitute the
> same value there.  This will usually result in more digits than a human
> would normally want to see.
>
> If you *want* format ~p, use it!
>
> Now perhaps there might be an argument to be made for
> float_to_list(X: number(), N: integer()) -> string()
> returning a string that represents X as accurately as
> possible using N digits.  But that is another discussion.
>
> On Thu, 6 May 2021 at 20:56, Themba Jonga <[email protected]> wrote:
>
>> Hi, again.
>>
>> Following a response I got from Dmitry Klionsky, perhaps it makes sense
>> for *float_to_list(N)* to be made into a wrapper for
>> *lists:flatten(io_lib:format("~p",[N]))?*
>>
>> Eshell V11.1  (abort with ^G)
>> 1> N = 4.4445.
>> 4.4445
>> 2> lists:flatten(io_lib:format("~p",[N])).
>> "4.4445"
>> 3> P = 5.4443.
>> 5.4443
>> 4> lists:flatten(io_lib:format("~p",[P])).
>> "5.4443"
>> 5> Q = 1.2345678.
>> 1.2345678
>> 6> lists:flatten(io_lib:format("~p",[Q])).
>> "1.2345678"
>> 7> float_to_list(Q).
>> "1.23456779999999999298e+00"
>> 8>
>>
>> Regards
>>
>> *Themba Jonga*
>>
>>
>>
>>
>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Virus-free.
>> www.avg.com
>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>> <#m_4119889666038623623_m_-2114829433146319840_m_1222824999368714802_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>
>> On Wed, 5 May 2021 at 18:38, Scott Ribe <[email protected]>
>> wrote:
>>
>>> > On May 5, 2021, at 10:20 AM, [email protected] wrote:
>>> >
>>> > In short, no.
>>>
>>> Although many (most, actually nearly all) real numbers cannot be
>>> represented precisely as a float, any float can be round-tripped to text
>>> and back exactly. This is part of the IEEE floating point standard,
>>> actually. (And it's not easy...)
>>>
>>>
>>>
>>
>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Virus-free.
>> www.avg.com
>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>> <#m_4119889666038623623_m_-2114829433146319840_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.