[erlang-questions] [patch] new float_to_list/2
Gleb Peregud
gleber.p@REDACTED
Wed Jan 12 15:23:29 CET 2011
Some time ago I've submitted similar but simpler patch. It was a
float_to_list/2 with a second parameter being an integer specifying
precision. For me it was important to generate A LOT of floats as
strings as fast as possible with specified precision. Serge's version
has an overhead of inspecting proplist of the second parameter. So I
was wondering about introducing two versions of this function: with a
proplist as a second parameter and with a number as a second
parameter. Alternatively proplist version can be factored out into
float_to_list_opts/2.
Just my 0.2 cents
On Wed, Jan 12, 2011 at 15:10, Serge Aleynikov <serge@REDACTED> wrote:
> The reason I called it precision was to be consistent with the naming
> convention of the printf function. Below is the extract from "man 3
> printf", which refers to the digits after the decimal point as "precision":
>
> f, F The double argument is rounded and converted to decimal
> notation in the style [-]ddd.ddd, where the number of
> digits after the decimal-point character is equal to the
> precision specification. If the precision is missing,
> it is taken as 6; if the precision is explicitly zero,
> no decimal-point character appears. If a decimal point
> appears, at least one digit appears before it.
>
> I don't have a very strong preference for calling it precision or scale, but
> I do have a strong preference for including this patch in the distribution,
> because the default behavior of float_to_list/1 hard-coded in C is
> deficient.
>
>
> On 1/12/2011 4:58 AM, nox wrote:
>>
>> Il should be called "scale", shouldn't it?
>>
>> Le 12 janv. 2011 à 10:26, Pierpaolo Bernardi<olopierpa@REDACTED> a écrit
>> :
>>
>>> On Wed, Jan 12, 2011 at 06:44, Serge Aleynikov<serge@REDACTED>
>>> wrote:
>>>>
>>>> Attached please find a patch that adds a new float_to_list/2 BIF. The
>>>> patch
>>>> was created off of the master branch of https://github.com/erlang/otp.
>>>>
>>>> This BIF solves a problem of float_to_list/1 that doesn't allow
>>>> specifying
>>>> the number of digits after the decimal point when formatting floats.
>>>>
>>>> float_to_list(Float, Options) -> string()
>>>>
>>>> Float = float()
>>>> Options = [Option]
>>>> Option = {precision, Precision::integer()} | compact
>>>>
>>>> Text representation of a float formatted using given options
>>>>
>>>> Returns a string which corresponds to the text
>>>> representation of Float using fixed decimal point formatting.
>>>> When precision option is specified
>>>> the returned value will contain at most Precision number of
>>>> digits past the decimal point. When compact option is provided
>>>> the trailing zeros at the end of the list are truncated.
>>>
>>> I think the option is misnamed.
>>>
>>> In the usual terminology, 'precision' is the total number of
>>> significative digits, not only the ones past the decimal point.
>>>
>>> Cheers
>>> P.
>>>
>>> ________________________________________________________________
>>> erlang-questions (at) erlang.org mailing list.
>>> See http://www.erlang.org/faq.html
>>> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
>>>
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
>
>
More information about the erlang-questions
mailing list