Template:Convert: Difference between revisions

From Wikishire
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
<!-- ==Analyse elements==
<!-- =Analyse elements=
-->{{#vardefine:fig 1|{{uncomma|{{{1}}} }} }}
-->{{#vardefine:fig 1|{{uncomma|{{{1}}} }} }}
{{#vardefine:plur 1|{{#ifexpr:{{#var:fig 1}}>1}}|y|n}}
{{#vardefine:plur 1|{{#ifexpr:{{#var:fig 1}}>1}}|y|n}}
{{#vardefine:roundx|0}}<!--
{{#vardefine:roundx|0}}<!--
==x-code (no metric)==
=x-code (no metric)=
-->{{#vardefine:x code|}}
-->{{#vardefine:x code|}}
{{conv x-code|{{{3}}} }}{{conv x-code|{{{4}}} }}{{conv x-code|{{{5}}} }}{{conv x-code|{{{6}}} }}<!--
{{conv x-code|{{{3}}} }}{{conv x-code|{{{4}}} }}{{conv x-code|{{{5}}} }}{{conv x-code|{{{6}}} }}<!--
==roundx code (rounding)==
=roundx code (rounding)=
-->{{#vardefine:roundx|{{#expr:{{#iferror:{{#expr:0+{{{3}}} }} }}+{{#iferror:{{#expr:0+{{{4}}} }} }}+{{#iferror:{{#expr:0+{{{5}}} }} }}+{{#iferror:{{#expr:0+{{{6}}} }} }} }} }}<!--
-->{{#vardefine:roundx|{{#expr:{{#iferror:{{#expr:0+{{{3}}} }} }}+{{#iferror:{{#expr:0+{{{4}}} }} }}+{{#iferror:{{#expr:0+{{{5}}} }} }}+{{#iferror:{{#expr:0+{{{6}}} }} }} }} }}<!--
==Define units (unit 1, unit 1A, unit 2)==
=Define units (unit 1, unit 1A, unit 2)=
-->{{#vardefine:unit 1|{{unitfix|{{{2}}} }} }}
-->{{#vardefine:unit 1|{{unitfix|{{{2}}} }} }}
{{#vardefine:unit 1A|{{conv unit set-up|{{#var:unit 1}}|{{#var:plur 1}}|{{#switch:{{{abbr|}}}
{{#vardefine:unit 1A|{{conv unit set-up|{{#var:unit 1}}|{{#var:plur 1}}|{{#switch:{{{abbr|}}}
Line 16: Line 16:
|off=long
|off=long
|def}}|{{{adj}}} }} }}
|def}}|{{{adj}}} }} }}
{{#ifeq:{{isnumber|{{{3|}}} }}|y|{{#vardefine:unit 2|{{Database|{{#var:unit 1}}|counterpart}} }}|{{#ifeq:{{{3|}}}|x|{{#vardefine:unit 2|{{Database|{{#var:unit 1}}|counterpart}} }}|{{#vardefine:unit 2|{{unitfix|{{{3}}} }} }} }} }}
{{#vardefine:unit 2|{{#ifexist:{{SI|{{{3|}}} }}|{{unitfix|{{{3}}} }}|{{Database|{{#var:unit 1}}|counterpart}} }} }}<!--
{{#vardefine:unit 2A|{{conv unit set-up|{{#var:unit 2}}|{{#var:plur 2}}|{{#switch:{{{abbr|}}}
|on
|out=abb
|in
|off=long
|def}}|{{{adj|}}} }} }}<!--
=Calculation=
=Calculation=
-->{{#vardefine:fig 2|{{convert 2|{{#var:fig 1}}|{{#var:unit 2}}|{{convert temp|{{#var:fig 1}}|{{#var:unit 1}}|{{#var:unit 2}}|{{#var|roundx}} }} }} }}
-->{{#vardefine:fig 2|{{convert 2|{{#var:fig 1}}|{{#var:unit 2}}|{{convert temp|{{#var:fig 1}}|{{#var:unit 1}}|{{#var:unit 2}}|{{#var|roundx}} }} }} }}
{{#vardefine:plur 2|{{#expr:{{#var:fig 2}}>1}}|y|n}}<!--
{{#vardefine:plur 2|{{#ifexpr:{{#var:fig 2}}>1}}|y|n}}<!--
=Define unit 2A=
=Define unit 2A=
-->{{#vardefine:unit 2A|{{conv unit set-up|{{#var:unit 2}}|{{#var:plur 2}}|{{#switch:{{{abbr|}}}
-->{{#vardefine:unit 2A|{{conv unit set-up|{{#var:unit 2}}|{{#var:plur 2}}|{{#switch:{{{abbr|}}}
Line 32: Line 26:
|in
|in
|off=long
|off=long
|def}}|{{{adj|}}} }} }}
|def}}|{{{adj|}}} }} }}<!--
<!--
=Output display=
=Output display=
-->{{#ifeq:{{Database|{{#var:unit 1}}|quantity}}|{{Database|{{#var:unit 2}}|quantity}}|{{Conv display|{{#var:fig 1}}|{{#var:unit 1A}}|{{#var:fig 2}}|{{#var:unit 2A}}|{{#var:x code}} }}|'''''Error: mismatched units'''''}}
-->{{#ifeq:{{Database|{{#var:unit 1}}|quantity}}|{{Database|{{#var:unit 2}}|quantity}}|{{Conv display|{{#var:fig 1}}|{{#var:unit 1A}}|{{#var:fig 2}}|{{#var:unit 2A}}|{{#var:x code}} }}|'''''Error: mismatched units'''''}}

Revision as of 22:16, 10 October 2012




1 s (First argument to "number_format" must be a number. s)

THIS MAY NOT WORK YET, BUT GETTING THERE

[edit] [{{#invoke:Purge|main}}] Template documentation

The Convert template converts between units of measurement. The basic format is:

{{convert | [value] | [unit] | [unit to convert to] | [how many decimal places] }}

The third and fourth elements (the "output unit" and the rounding figure) may be omitted, in which case the template will choose from the database a normal counterpart for the input unit and will assume all is rounded to 1 decimal place.

Thus {{convert|1,000|ft}}
will produce:



1,000 feet (First argument to "number_format" must be a number. m)

If one of the units is imperial, the programme will always put that one first.

Units

The system accepts a wide range of units and while there are codes for them, the template is worked so that any reasonable and unambiguous rendering of the name of the unit, if we have anticipated it, will be accepted (so a metre is "m", but entering "m", "metre" or "metres" for it will work too).

Additional, optional codes

There are two short codes, for rounding and the "x" code, which may be added after the unit or units. It does not matter which way round these go, as long as they are in a distinct field ("|3" or "|x").

Rounding

To chose the number of decimal places to which the answer should be rounded, add the number after the unit(s).

Imperial only: x code

If the non-imperial measurement is to be omitted (for example if the original material has metric only but you want to show an imperial unit in its place), add "x" after the unit(s):

Putting {{convert|300|m|x}} {{convert|300|m|3}}
will produce:



First argument to "number_format" must be a number. feet



First argument to "number_format" must be a number. feet (300 m)

Likewise {{convert|300|m|x|2}} or {{convert|300|m|2|x}}
will produce:



First argument to "number_format" must be a number. feet

Missing units

If there are useful units which do not work in the template, it is only a question of updating the database: notify the Wikishire folk on the Talk page and someone will no doubt sort it out.