Module talk:Formatnum

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

language:formatNum(tonumber(number),…)[edit]

If I read the code correctly, then tonumber(number) is already computed and stored in the variable named “value”. Incnis Mrsi (talk) 09:55, 22 October 2019 (UTC)[reply]

@Incnis Mrsi: It's true that the variable value stores the numeric value of the parameter passed as number. However, if you read line 44, the mw.language:formatNum() call doesn't handle exponents properly. The lines 41 to 52 convert number to a string, then if there is an exponent, it stores the significand as a string back into number and the exponent in exponent. So by the time the code reaches lines 84 or 86 the string value in number may or may not be the same as that passed into the function. So it's necessary to again convert that string back to a number in order to use mw.language:formatNum(). Writing language:formatNum(value, ...) wouldn't work properly if the number passed contained an exponent. Hope that makes sense. --RexxS (talk) 16:18, 22 October 2019 (UTC)[reply]
Ah, got it – the variable may be reassigned with number = string.sub(number, 1, pos - 1). Incnis Mrsi (talk) 17:11, 22 October 2019 (UTC)[reply]

Zero precision not working[edit]

If I use fn.formatNum(5435.12345,"en",2) I get the result 5,435.12 as expected. Similarly with other positive values for precision. But with fn.formatNum(5435.12345,"en",0) the number is returned with all the post decimal point digits, i.e. 5,435.12345). Looking at the code there are a couple of if prec > 0 then ... elseif prec < 0 then .. end blocks which suggests zero is ignored. Is this intentional or an oversight?   Jts1882 | talk  15:35, 9 December 2019 (UTC)[reply]

#invoke[edit]

The production code cannot be #invoke'd normally, only wrapped by templates. The sandbox code fixes this. Trigenibinion (talk) 11:56, 3 March 2021 (UTC)[reply]

 Not done for now: please establish a consensus for this alteration before using the {{edit template-protected}} template. It is not obvious to me that it would be beneficial to allow a module-version to be used. What is the proposed use case where it is necessary? (See also Template talk:Infobox for a related case.) Izno (talk) 02:11, 5 June 2021 (UTC)[reply]
This is needed so that this module or another one can be conditionally #invoke'd. See Template:FXConvert/sandbox. Trigenibinion (talk) 08:43, 17 July 2022 (UTC)[reply]
 Not done Nothing has changed since Izno's decline. This request is part of a proposal to produce code bloat whose existence five people have objected to at TfD, and hence is by definition not uncontroversial enough for an edit request. * Pppery * it has begun... 14:34, 1 August 2022 (UTC)[reply]
Supporting #invoke has nothing to do with code bloat. It is only a couple lines of code. It is not required by Template:FXConvert or Module:Wordify, it can be worked around, but that is not the best solution. Trigenibinion (talk) 16:11, 1 August 2022 (UTC)[reply]
Asked and answered. Reopening without consensus is not acceptable. No TE in their right mind would make such an edit without the necessary garnered consensus. Rather than spinning your wheels, just go and get the necessary consensus. P.I. Ellsworth , ed. put'r there 20:20, 5 August 2022 (UTC)[reply]
Isn't this the place to garner consensus? Trigenibinion (talk) 21:24, 15 August 2022 (UTC)[reply]
To editor Trigenibinion: yes, this talk page would be the place to garner consensus. Since this talk page may not be monitored by many editors, a neutral invitation on other appropriate talk pages would put more eyes on your proposal. For some edits, especially major changes, a formal RfC is used to help garner consensus. P.I. Ellsworth , ed. put'r there 18:49, 27 August 2022 (UTC)[reply]