Difference between revisions of "Template:Hands/numdisp/sandbox"

From blackwiki
Jump to navigation Jump to search
imported>DePiep
m (→‎top: in documentation: Protect -{ markup in preprocessor lang-conversion: phab:T146304, mw:explained using AWB)
 
(6 intermediate revisions by 4 users not shown)
Line 6: Line 6:
 
--
 
--
 
--></noinclude>{{#if:{{#titleparts:{{{1|-1200-3~118}}}|1|2}}
 
--></noinclude>{{#if:{{#titleparts:{{{1|-1200-3~118}}}|1|2}}
|{{Convert/numdisp/frac
+
|{{Hands/numdisp/frac
 
   |{{{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|-14000.00}}} < 0
 
--else-->|{{#ifexpr:{{{1|-14000.00}}} < 0
 
   |<!--then re-build negative number (see NOTE Z4 below)
 
   |<!--then re-build negative number (see NOTE Z4 below)
 
-->{{formatnum:
 
-->{{formatnum:
   {{padright:−<!--&minus-->{{#expr:-{{{1|-14000.00}}} }}<!--endexpr
+
   {{padright:−<!--&minus-->{{#expr:- {{{1|-14000.00}}} }}<!--endexpr
 
     --put decimal if needed-->{{
 
     --put decimal if needed-->{{
 
     #ifexpr:{{{1|-14000.00}}}0={{{1|-14000.00}}}
 
     #ifexpr:{{{1|-14000.00}}}0={{{1|-14000.00}}}
 
     and {{{1|-14000.00}}}=floor( {{{1|-14000.00}}} )|.}}<!--
 
     and {{{1|-14000.00}}}=floor( {{{1|-14000.00}}} )|.}}<!--
   -->|{{strlen_short|{{{1|-14000.00}}}|}}<!--endstrlen_short
+
   padlength-->|{{#expr:
 +
    {{strlen_short|{{{1|-14000.00}}}|}}<!--endstrlen_short--> + {{
 +
    #ifeq:&minus| {{padleft:|6|{{{1|x}}} }} |-6|0}} }}<!--endexpr
 
     -->|0}}<!--endpadright end-zeroes "0" to original length
 
     -->|0}}<!--endpadright end-zeroes "0" to original length
 
   -->}}<!--endformatnum
 
   -->}}<!--endformatnum
Line 35: Line 37:
 
--    #titleparts to split the number at "/" (if any) and
 
--    #titleparts to split the number at "/" (if any) and
 
--    then checks part 2 (the denominator, after the slash)
 
--    then checks part 2 (the denominator, after the slash)
--    to trigger use of {{Convert/numdisp/fracparts}}. Hence,
+
--    to trigger use of {{Hands/numdisp/fracparts}}. Hence,
 
--        #if: {{#titleparts:{{{1|6+3/8}}}|1|2}}
 
--        #if: {{#titleparts:{{{1|6+3/8}}}|1|2}}
 
--    will be true if a denominator exists (such as "8").
 
--    will be true if a denominator exists (such as "8").
Line 41: Line 43:
 
--NOTE N3: This template uses minimal expansion depth of the
 
--NOTE N3: This template uses minimal expansion depth of the
 
--    if-else logic by checking for "/" before invoking the
 
--    if-else logic by checking for "/" before invoking the
--    nested subtemplate {{Convert/numdisp/fracparts}}. The
+
--    nested subtemplate {{Hands/numdisp/fracparts}}. The
 
--    check for a negative number increases the nesting depth
 
--    check for a negative number increases the nesting depth
 
--    by 1 level to apply abs({1}) in a nested {#expr:} parser
 
--    by 1 level to apply abs({1}) in a nested {#expr:} parser
Line 48: Line 50:
 
--NOTE Z4: Any end-zeroes on a decimal are preserved by not
 
--NOTE Z4: Any end-zeroes on a decimal are preserved by not
 
--    using positive amounts in an expression, and for rare
 
--    using positive amounts in an expression, and for rare
--    negative amounts, the &minus with inverse -{1} is padded
+
--    negative amounts, the &minus with inverse -<nowiki/>{1} is padded
 
--    by {padright:} with end-zeroes "0" to {strlen_short} but
 
--    by {padright:} with end-zeroes "0" to {strlen_short} but
 
--    uses #ifexpr:{1}0={1} and floor({1})={1} to put ".".
 
--    uses #ifexpr:{1}0={1} and floor({1})={1} to put ".".
Line 74: Line 76:
 
--17Feb11 Used {padright:} to re-add end-zeroes on negatives.
 
--17Feb11 Used {padright:} to re-add end-zeroes on negatives.
 
--17Feb11 Used #ifexpr:{1}0={1} and floor({1})={1}, to put "."
 
--17Feb11 Used #ifexpr:{1}0={1} and floor({1})={1}, to put "."
 +
--28Nov13 Fixed to allow prefix "&minus;" as extra 7 long.
 +
--11Apr2017 prevent witing "-<nowiki/>{" becasue thiis interferens with LAngConversion (see [[:mw:Parsoid/Language conversion/Preprocessor fixups]])
 
--
 
--
 
  ** Add interwiki links to /doc subpage to avoid changes here **
 
  ** Add interwiki links to /doc subpage to avoid changes here **
 
--
 
--
-->{{documentation}}
+
-->{{Documentation}}
 
</noinclude>
 
</noinclude>

Latest revision as of 19:57, 11 May 2017

−14,000.

Template documentation[view] [edit] [history] [purge]

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}} → 6 38
{{hands/numdisp|-4-1/2}} → −412
{{hands/numdisp|23500}} → 23,500
{{hands/numdisp|2300+643/1250}} → 2,300 6431250
{{hands/numdisp|&minus;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