Difference between revisions of "Template:Hands/numdisp"
Jump to navigation
Jump to search
imported>Plastikspork (Per edit request, revert if controversial or if it breaks something) |
imported>Plastikspork (Trailing zeros fix per edit request, and moving cat to doc ...) |
||
| Line 5: | Line 5: | ||
-- (see NOTES at bottom) | -- (see NOTES at bottom) | ||
-- | -- | ||
| − | --></noinclude>{{#if:{{#titleparts:{{{1|-1200-3 | + | --></noinclude>{{#if:{{#titleparts:{{{1|-1200-3~118}}}|1|2}} |
|{{Convert/numdisp/fracparts | |{{Convert/numdisp/fracparts | ||
|{{{1|-1200-3/118}}}|{{#titleparts:{{{1|-1200-3/118}}}|1|1}}|{{#titleparts:{{{1|-1200-3/118}}}|1|2}}}}<!--split at "/" | |{{{1|-1200-3/118}}}|{{#titleparts:{{{1|-1200-3/118}}}|1|1}}|{{#titleparts:{{{1|-1200-3/118}}}|1|2}}}}<!--split at "/" | ||
| − | --else-->|{{#ifexpr:{{{1|- | + | --else-->|{{#ifexpr:{{{1|-14000.00}}} < 0 |
| − | + | |<!--then re-build negative number (see NOTE Z4 below) | |
| − | }}}}<noinclude><!-- | + | -->{{formatnum: |
| + | {{padright:−<!--&minus-->{{#expr:-{{{1|-14000.00}}} }}<!--endexpr | ||
| + | --put decimal if needed-->{{ | ||
| + | #ifexpr:{{{1|-14000.00}}}0={{{1|-14000.00}}} | ||
| + | and {{{1|-14000.00}}}=floor( {{{1|-14000.00}}} )|.}}<!-- | ||
| + | -->|{{strlen_short|{{{1|-14000.00}}}|}}<!--endstrlen_short | ||
| + | -->|0}}<!--endpadright end-zeroes "0" to original length | ||
| + | -->}}<!--endformatnum | ||
| + | else-->|{{formatnum: {{{1|6000.500}}} }}}}<!--endif {1}<0 | ||
| + | -->}}<noinclude><!--endif {#titleparts..} | ||
-------------------------------------------------------------- | -------------------------------------------------------------- | ||
--NOTES: | --NOTES: | ||
| Line 36: | Line 45: | ||
-- by 1 level to apply abs({1}) in a nested {#expr:} parser | -- by 1 level to apply abs({1}) in a nested {#expr:} parser | ||
-- function, to use the absolute value of the amount {1}. | -- function, to use the absolute value of the amount {1}. | ||
| + | -- | ||
| + | --NOTE Z4: Any end-zeroes on a decimal are preserved by not | ||
| + | -- using positive amounts in an expression, and for rare | ||
| + | -- negative amounts, the &minus with inverse -{1} is padded | ||
| + | -- by {padright:} with end-zeroes "0" to {strlen_short} but | ||
| + | -- uses #ifexpr:{1}0={1} and floor({1})={1} to put ".". | ||
| + | -- So, {strlen_short} keeps minimal expansion depth of +2. | ||
-- | -- | ||
-- WARNING: *** DO NOT DELETE COMMENTS FROM THIS TEMPLATE *** | -- WARNING: *** DO NOT DELETE COMMENTS FROM THIS TEMPLATE *** | ||
| Line 56: | Line 72: | ||
--20Nov10 Linked {Documentation} to hold any interwiki links. | --20Nov10 Linked {Documentation} to hold any interwiki links. | ||
--12Feb11 Shows Unicode &minus ("−") for negative numbers. | --12Feb11 Shows Unicode &minus ("−") for negative numbers. | ||
| + | --17Feb11 Used {padright:} to re-add end-zeroes on negatives. | ||
| + | --17Feb11 Used #ifexpr:{1}0={1} and floor({1})={1}, to put "." | ||
-- | -- | ||
** Add interwiki links to /doc subpage to avoid changes here ** | ** Add interwiki links to /doc subpage to avoid changes here ** | ||
-- | -- | ||
-->{{Documentation}} | -->{{Documentation}} | ||
| − | |||
| − | |||
</noinclude> | </noinclude> | ||
Revision as of 19:57, 17 February 2011
−14,000.
The Template:Hands/numdisp processes a number, for display, by checking to display a fraction part (at "/"), else it just uses parser-function {{formatnum:{{{1|6000}}}}} to add commas, such as to show "6,000".
- Usage: {{hands/numdisp|6+3/8}} → Template:Convert/numdisp/fracparts
- {{hands/numdisp|-4-1/2}} → Template:Convert/numdisp/fracparts
- {{hands/numdisp|23500}} → 23,500
- {{hands/numdisp|2300+643/1250}} → Template:Convert/numdisp/fracparts
- {{hands/numdisp|−7.0}} → −7.
- {{hands/numdisp|14+6/ }} → Expression error: Unexpected < operator
Implementation
The check, for fraction parts, uses parser-function {{#titleparts:xx/xx|1|2}} to split a number at "/" (if any, as in: 6+3/8) and then checks if part 2 (the denominator, after the slash) contains a number, to trigger use of {{hands/numdisp/frac}}). Hence, the template uses:
- #if: {{#titleparts:{{{1|6+3/8}}}|1|2}}
That if-expression will be true if a denominator exists (such as "8" in 6+3/8).
See also
| The above documentation is transcluded from Template:Hands/numdisp/doc. (edit | history) Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages. Please add categories to the /doc subpage. Subpages of this template. |