Template:Formatnum: Difference between revisions
adding an irrelevantly low number to overcome rounding errors that stop truncating from working |
further improvement of rounding |
||
Line 17: | Line 17: | ||
}}{{#ifexpr: abs( {{{1|0}}} ) >= 10 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} ) - trunc( abs( {{{1|0}}} ) / 100 ) * 100 ) / 10 ) }}|{{{2|}}}}} |
}}{{#ifexpr: abs( {{{1|0}}} ) >= 10 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} ) - trunc( abs( {{{1|0}}} ) / 100 ) * 100 ) / 10 ) }}|{{{2|}}}}} |
||
}}{{#ifexpr: abs( {{{1|0}}} ) >= 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} ) - trunc( abs( {{{1|0}}} ) / 10 ) * 10 ) / 1 ) }}|{{{2|}}}}} |
}}{{#ifexpr: abs( {{{1|0}}} ) >= 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} ) - trunc( abs( {{{1|0}}} ) / 10 ) * 10 ) / 1 ) }}|{{{2|}}}}} |
||
}}{{#ifexpr: abs( {{{1|0}}} ) - trunc( abs( {{{1|0}}} ) ) > 0 |{{formatnumSigns|.|{{{2|}}}}}{{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 1 ) / 1 ) * 10 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 10 ) / 10 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 10 ) / 10 ) * 100 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 100 ) / 100 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 100 ) / 100 ) * 1000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 1000 ) / 1000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 1000 ) / 1000 ) * 10000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 10000 ) / 10000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 10000 ) / 10000 ) * 100000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 100000 ) / 100000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 100000 ) / 100000 ) * 1000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 1000000 ) / 1000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 1000000 ) / 1000000 ) * 10000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 10000000 ) / 10000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 10000000 ) / 10000000 ) * 100000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 100000000 ) / 100000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 100000000 ) / 100000000 ) * 1000000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 1000000000 ) / 1000000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 1000000000 ) / 1000000000 ) * 10000000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 10000000000 ) / 10000000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 10000000000 ) / 10000000000 ) * 100000000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} ) * 100000000000 ) / 100000000000 ) > 0 | {{formatnumDigit|{{#expr: ( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 100000000000 ) / 100000000000 ) * 1000000000000 ) round 0 }}|{{{2|}}}}} |
}}{{#ifexpr: abs( {{{1|0}}} ) - trunc( abs( {{{1|0}}} ) ) > 0 |{{formatnumSigns|.|{{{2|}}}}}{{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 1 ) / 1 ) * 10 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 10 ) / 10 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 10 ) / 10 ) * 100 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 100 ) / 100 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 100 ) / 100 ) * 1000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 1000 ) / 1000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 1000 ) / 1000 ) * 10000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 10000 ) / 10000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 10000 ) / 10000 ) * 100000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 100000 ) / 100000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 100000 ) / 100000 ) * 1000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 1000000 ) / 1000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 1000000 ) / 1000000 ) * 10000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 10000000 ) / 10000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 10000000 ) / 10000000 ) * 100000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 100000000 ) / 100000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 100000000 ) / 100000000 ) * 1000000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 1000000000 ) / 1000000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 1000000000 ) / 1000000000 ) * 10000000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 10000000000 ) / 10000000000 ) > 0 | {{formatnumDigit|{{#expr: trunc( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 10000000000 ) / 10000000000 ) * 100000000000 ) }}|{{{2|}}}}}{{#ifexpr: abs( {{{1|0}}} ) - ( trunc( abs ( {{{1|0}}} + 0.0000000000001 ) * 100000000000 ) / 100000000000 ) > 0 | {{formatnumDigit|{{#expr: ( ( abs( {{{1|0}}} + 0.0000000000001 ) - trunc( abs( {{{1|0}}} + 0.0000000000001 ) * 100000000000 ) / 100000000000 ) * 1000000000000 ) round 0 }}|{{{2|}}}}} |
||
}} }} }} }} }} }} }} }} }} }} }} }} |
}} }} }} }} }} }} }} }} }} }} }} }} |
||
}}<noinclude> |
}}<noinclude> |
Revision as of 17:20, 22 September 2009
Uses Lua: |
This template formats a number in the local format (local numerals, local thousands separator, decimal separator and the pattern of separators [some languages for example have a ten-thousands separator]) of the user's preferred language.
Parameter | Description | Type | Status | |
---|---|---|---|---|
number | 1 number | Number that will be formatted. It must be unformatted.
| Line | required |
language | 2 lang | Language code, only to be given if the language shall be fixed; by default the user interface language.
| Line | optional |
no separators | sep | Any non-empty value will remove thousands seperators. | Line | optional |
precision | prec | The number of decimal digits to show. If given as a positive number, exactly that many decimal digits will be shown, and the number will be truncated (not rounded!) or zero-padded if needed. If not given or it's nonpositive, all decimal digits will be shown, except for trailing zeros.
| Number | optional |
Examples
{{Formatnum|1234}}
--> Template:FormatnumDigitTemplate:FormatnumDigitTemplate:FormatnumDigitTemplate:FormatnumDigit
The above documentation is transcluded from Template:Formatnum/doc (edit | history). Editors can experiment in this template's sandbox (create | mirror) and testcases (create) page. Please add categories to the /doc subpage. Subpages of this template. |