Difference between revisions of "Template:Decimal Align"

From Team Fortress Wiki
Jump to: navigation, search
m
m (Adding a PREFIX support)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{#if: {{{NUM|}}} |
+
<!-- This template creates a subtable with two columns, the left column contains the integer part, and the right column contains the decimal. -->
{{{!}} class="nopad" width="100%"
+
<includeonly>
{{!}}align="right" width="50%" style="border: 0 none; padding: 0;" {{!}}{{#switch:{{{FORMAT|}}}|B='''|I=''|BI|IB='''''}}{{#if:{{{TOOLTIP|}}}|<span id="tooltip" style="cursor:help;border-bottom:1px dotted;" title="{{{TOOLTIP}}}">}}{{#expr: trunc {{{NUM|1}}} }}{{#if:{{{TOOLTIP|}}}|</span>}}{{#switch:{{{FORMAT|}}}|B='''|I=''|BI|IB='''''}}
+
{| class="nopad" width="100%"
{{!}}align="left" width="50%" style="border: 0 none; padding: 0;" {{!}}{{#ifeq: 0 | {{{P|3}}} |{{#switch:{{{FORMAT|}}}|B='''|I=''|BI|IB='''''}}{{#if:{{{TOOLTIP|}}}|<span id="tooltip" style="cursor:help;border-bottom:1px dotted;" title="{{{TOOLTIP}}}">}}{{{POSTFIX|}}}{{#if:{{{TOOLTIP|}}}|</span>}}{{#switch:{{{FORMAT|}}}|B='''|I=''|BI|IB='''''}}|{{#if:{{{TOOLTIP|}}}|<span id="tooltip" style="cursor:help;border-bottom:1px dotted;" title="{{{TOOLTIP}}}">}}{{#switch:{{{FORMAT|}}}|B='''|I=''|BI|IB='''''}}{{dec}}{{padleft:
+
| align="right" width="50%" style="border: 0 none; padding: 0; {{#switch:{{lc:{{{FORMAT|}}}}}|b=font-weight: bold;|i=font-style: italic;|bi|ib=font-weight: bold; font-style: italic;}}" | {{#if:{{{TOOLTIP|}}}|<span id="tooltip" style="cursor:help;border-bottom:1px dotted;" title="{{{TOOLTIP}}}">}}<!--
{{#expr: (({{{NUM|1}}} round {{{P|3}}}) - trunc {{{NUM|1}}}) * 10 ^ {{{P|3}}}
+
  In the left cell, right-aligned, we place the integer part:
}}|{{{P|3}}}}}{{{POSTFIX|}}}{{#if:{{{TOOLTIP|}}}|</span>}}{{#switch:{{{FORMAT|}}}|B='''|I=''|BI|IB='''''}} }}
+
  -->{{{PREFIX|}}}{{#expr: trunc({{{NUM|1}}}) }}<!--
{{!}}}
+
-->{{#if:{{{TOOLTIP|}}}|</span>}}
}}<noinclude>{{clr}}
+
| align="left" width="50%" style="border: 0 none; padding: 0; {{#switch:{{lc:{{{FORMAT|}}}}}|b=font-weight: bold;|i=font-style: italic;|bi|ib=font-weight: bold; font-style: italic;}}" | {{#if:{{{TOOLTIP|}}}|<span id="tooltip" style="cursor:help;border-bottom:1px dotted;" title="{{{TOOLTIP}}}">}}<!--
 +
  In the right cell, left-aligned, we place the decimal part:
 +
  -->{{#ifeq: {{{P|3}}} | 0
 +
    <!-- No padding, omit decimal part -->
 +
    | {{ns:0}}
 +
    <!-- Else, compute decimal part as an integer with round(num - floor(num), P) * 10^P -->
 +
    | {{dec}}{{padleft:{{#expr: trunc((({{{NUM|1}}} - trunc {{{NUM|1}}}) round {{{P|3}}}) e {{{P|3}}})}}|{{{P|3}}}}}
 +
  }}{{{POSTFIX|}}}{{#if:{{{TOOLTIP|}}}|</span>}}
 +
|}</includeonly><noinclude>
 +
{{clr}}
 
{{Documentation}}
 
{{Documentation}}
 
[[Category:Formatting templates|{{PAGENAME}}]]
 
[[Category:Formatting templates|{{PAGENAME}}]]
 
</noinclude>
 
</noinclude>

Latest revision as of 06:56, 13 March 2024


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

This template is useful for stacking values in a table, where the numbers should be aligned based on the decimal separator. This template takes three arguments:

Argument Meaning
NUM Number to format
P Number of places after the decimal separator, defaults to three.
PREFIX String to append to the start of the number, such as a ~ symbol.
POSTFIX String to append to the end of the number, such as a % symbol.
FORMAT B for Bold, I for Italic, and BI or IB for Bold Italic
TOOLTIP Hover tooltip for the entire number, including POSTFIX if present.

So in example, the following table construct:

{| class="wikitable grid"
|-
! class = "header" | Numbers
|-
| {{Decimal Align | NUM = 123.456789}}
|-
| {{Decimal Align | NUM = 123.456789 | P = 0}}
|-
| {{Decimal Align | NUM = 123}}
|-
| {{Decimal Align | NUM = {{#expr: 24 * 6 /11}}}}
|-
| {{Decimal Align | NUM = 999.1111 | P = 2}}
|-
| {{Decimal Align | NUM = 33.343 | POSTFIX = % | FORMAT = I}}
|-
| {{Decimal Align | NUM = 33.343 | PREFIX = ~ | FORMAT = B}}
|-
| {{Decimal Align | NUM = 33.343 | PREFIX = ~ | POSTFIX = % | FORMAT = I}}
|-
| {{Decimal Align | NUM = 33.343 | P = 0 | POSTFIX = &&&}}
|-
| {{Decimal Align | NUM = 19 | POSTFIX = % | FORMAT = BI}}
|-
| {{Decimal Align | NUM = 19 | POSTFIX = % | FORMAT = BI | TOOLTIP=tooltip}}
|}

Would generate:

Numbers
123 .457
123
123 .000
13 .091
999 .11
33 .343%
~33 .343
~33 .343%
33 &&&
19 .000%
19 .000%