Difference between revisions of "Template:Hands/numdisp"

From blackwiki
Jump to navigation Jump to search
imported>Plastikspork
(This should work as well)
imported>Plastikspork
(Per edit request, revert if controversial or if it breaks something)
Line 1: Line 1:
{{#if:{{#titleparts:{{{1|-1200-3/118}}}|1|2}}
+
<noinclude><!--
|{{Convert/numdisp/fracparts
 
  |{{{1|-1200-3/118}}}|{{#titleparts:{{{1|-1200-3/118}}}|1|1}}|{{#titleparts:{{{1|-1200-3/118}}}|1|2}}}}
 
|{{formatnum:{{{1|6000}}}}}
 
}}<noinclude><!--
 
 
--============================================================
 
--============================================================
 
-- Display a number, with optional fraction part: 6+3/8
 
-- Display a number, with optional fraction part: 6+3/8
 
--============================================================
 
--============================================================
 +
--                                (see NOTES at bottom)
 +
--
 +
--></noinclude>{{#if:{{#titleparts:{{{1|-1200-3/118}}}|1|2}}
 +
|{{Convert/numdisp/fracparts
 +
  |{{{1|-1200-3/118}}}|{{#titleparts:{{{1|-1200-3/118}}}|1|1}}|{{#titleparts:{{{1|-1200-3/118}}}|1|2}}}}<!--split at "/"
 +
--else-->|{{#ifexpr:{{{1|-9}}} < 0|−<!--&minus-->}}{{
 +
formatnum:{{#expr: abs( {{{1|-6000}}} )}}|
 +
}}}}<noinclude><!--
 +
--------------------------------------------------------------
 +
--NOTES:
 +
--    [ These comments are skipped by <noinclude> and not sent
 +
--      in formatted Internet pages, only during edit. ]
 
--
 
--
 
--NOTE A1: This template processes a number, for display, by
 
--NOTE A1: This template processes a number, for display, by
--    checking to display a fraction part ("/"), else it just
+
--    checking to display a fraction part ("/"), else it
--    uses {{formatnum:{{{1|6000}}}}} such as for "6,000".
+
--    will check for negative to display a unicode &minus
 +
--    and {{formatnum:{{#expr:abs( {{{1|-6000}}} )}}}} such
 +
--    as "-6000" with a full minus sign rather than hyphen.
 
--    In 99% of Wikipedia usage, there are no fractions.
 
--    In 99% of Wikipedia usage, there are no fractions.
 
--
 
--
Line 16: Line 26:
 
--    #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 {{Convert/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").
 +
--
 +
--NOTE N3: This template uses minimal expansion depth of the
 +
--    if-else logic by checking for "/" before invoking the
 +
--    nested subtemplate {{Convert/numdisp/fracparts}}. The
 +
--    check for a negative number increases the nesting depth
 +
--    by 1 level to apply abs({1}) in a nested {#expr:} parser
 +
--    function, to use the absolute value of the amount {1}.
 
--
 
--
 
-- WARNING: *** DO NOT DELETE COMMENTS FROM THIS TEMPLATE ***
 
-- WARNING: *** DO NOT DELETE COMMENTS FROM THIS TEMPLATE ***
Line 38: Line 55:
 
--19Nov10 Put all parameters on 1 line to avoid newline "2^ /3"
 
--19Nov10 Put all parameters on 1 line to avoid newline "2^ /3"
 
--20Nov10 Linked {Documentation} to hold any interwiki links.
 
--20Nov10 Linked {Documentation} to hold any interwiki links.
 +
--12Feb11 Shows Unicode &minus ("−") for negative numbers.
 
--
 
--
 
  ** Add interwiki links to /doc subpage to avoid changes here **
 
  ** Add interwiki links to /doc subpage to avoid changes here **
-->
+
--
{{Documentation}}
+
-->{{Documentation}}
 +
 
 +
[[Category:Subtemplates of Template Convert]]
 
</noinclude>
 
</noinclude>

Revision as of 01:29, 12 February 2011

Template:Convert/numdisp/fracparts

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}} → 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|&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