Template:Convert/doc

Template convert calculates from one measurement unit to another one, and then presents the results formatted. For example:
 * → 2 km (km entered, so converted into mile)
 * → 7 mi (mi entered, so converted into km)

Numbers can be rounded, units can be abbreviated into symbols:
 * → 2 km
 * → 7 mi

Value ranges can be entered using  or  :
 * → 2 to 5 km
 * → 2 - 5 km

Combined effect example:
 * → 2 - 5 km
 * → 2 and 5 km

Units to convert
Enter units to convert:
 * → 1 lb
 * SI units generally accept prefixes, like "m" for micro (10&minus;3), and "M" for mega (106)
 * For "per" units, use "/" (slash): kg/ha
 * For three-unit units etc.: see

Unit name or symbol (abbreviation): 1 pound or 1 lb?
By default, the first quantity shows unit name, the second shows the symbol (or abbreviation):
 * → 1 lb

Using in is the reverse behaviour to the default:
 * → 1 lb

To abbreviate both or neither:
 * → 1 lb
 * → 1 lb

When using scientific notation, the default is for the second (converted) quantity to be displayed using scientific notation:
 * → 100 e6mi

To display thousands, millions, etc., while abbreviating both input and output units use unit:
 * → 100 e6mi

Convenience: has on by default
Template cvt is the same as, except that it has on as the default behaviour. In, all other options are available. So:
 * → 1 lb

is equivalent to:
 * → 1 lb

Adjective: a 10-mile distance
Use on to produce the adjectival (hyphenated) form: Default behaviour, for comparison:
 * → A 10 mi distance.
 * → 10 mi to go.

Even with on, as per MoS no hyphen is produced with unit symbols.

Rounding: 100 ft is 30 m or 30.5 m or 30.48 m?
By definition, 100 ft equals 100 ft. In practical use, it is common to round the calculated metric number. With that, there are several possibilities.

Default rounding
By default, the conversion result will be rounded either to precision comparable to that of the input value (the number of digits after the decimal point—or the negative of the number of non-significant zeroes before the point—is increased by one if the conversion is a multiplication by a number between 0.02 and 0.2, remains the same if the factor is between 0.2 and 2, is decreased by 1 if it is between 2 and 20, and so on) or to two significant figures, whichever is more precise. An exception to this is rounding temperatures (see below).

Convert supports four types of rounding:

Round to a given precision: use a precision number
Specify the desired precision with the fourth unnamed parameter (or third unnamed parameter if the "convert to" parameter is omitted; or fifth unnamed parameter if a range is specified; or fourth unnamed parameter again if a range is specified and the "convert to" parameter is omitted; needs to be replaced with a "precision" named parameter). The conversion is rounded off to the nearest multiple of $1/undefined$ to the power of this number. For instance, if the result is 8621 and the round number is "-2", the result will be 8600. If the result is "234.0283043" and the round number is "0", the result will be 234.

Round to a given number of significant figures: sigfig
To specify the output number to be with n significant figures use &lt;number>: Default behaviour, for comparison: Setting sigfig to a value less than 1 is meaningless:
 * → 1200 ft
 * → 1200 ft
 * → 1200 ft
 * → 1200 ft
 * → 1200 ft
 * → 1200 ft ❌

Round to a multiple of 5: 15, 20, 25, ...
Using 5 rounds the outcome to a multiple of 5.
 * → 10 m
 * → 10 m

Similar: using 25 rounds the outcome to a multiple of 25. Default behaviour, for comparison:
 * → 10 m
 * → 10 m
 * → 10 m

In a range, one can round each value individually to the default. Use each:
 * → 10 x 200 x 3000 m
 * → 10 x 200 x 3000 m

Round to a multiple of a given fraction: $2 3/16$ inch
Specify the desired denominator using &lt;some positive integer&gt;. (Denominator is the below-the-slash number, for example the 3 in $1/3$). The fraction is reduced when possible: Default behaviour uses decimal notation:
 * → 5.56 cm
 * → 8 cm
 * → 8 cm
 * → 5.56 cm

Rounding temperatures: °C, °F and K
In temperatures, the conversion will be rounded either to precision comparable to that of the input value or to that which would give three significant figures when expressed in kelvins, whichever is more precise.



The precision of the input number in example (1) is one digit, but the precision of its Kelvins expression is three, so the precision of the Fahrenheit conversion is made three (made 180...). (1) and (2) seem to belie the fact that a 0.1 C-change, and make the 32 degrees difference shown in (1) begin to seem off somehow. Result (1) seems off until you set the significant figures yourself with sigfig:

or you set the precision positionally, relative to the decimal point (zero being at the decimal point):

The precision of the input number in example (2) is six, so the precision of the Fahrenheit output is, whereas before, Kelvins had determined it to be three. Examples (3) and (4) show how this can be hidden and generate questions, but it occurs there because the Kelvins conversion generated two fractional parts. (Before it was the input number that generated the fractional part.) In example (3) the three input digits converted into five significant output digits because of the two digits after the decimal point, generated by the Kelvins conversion. This happened again in (5), but in (6) decimal fractions were neither given as input nor induced by the Kelvins conversion.

Rounding input
There is limited support for rounding the displayed input number. The rounding tales place after conversion, so the output is based on the full-precision input. This is useful when the input is produced by or otherwise available to a higher precision than is usefully displayed, and it's desirable to avoid double-rounding.

To round the input to a specified number of digits after the decimal point, use one of the parameters: Note that there is no ri-1❌ or similar for rounding above the decimal place. Neither is there support for significant figures, multiples of 5, or any other output-rounding feature.
 * ri0
 * ri1
 * ri2
 * ri3

The default precision is computed based on the input, so an explicit output precision must usually be supplied:
 * → 4.14159 mi
 * → 4.14159 mi

In this case, if the input were rounded before conversion, a different result would be obtained:
 * → undefined mi

Into multiple units: 10 C
Separate the multiple output units by a space: If the output unit names contain spaces, use  as the separator.
 * → 10 C
 * → 5 km

See also:
 * For multiple-unit options like 1 ft 5 in, see and.

Ranges of values
A range converts two values and separates them by your choice of words and punctuation.

A range: 6 to 17 kg (13 to 37 lb)
Range indicators are entered as the second parameter (between the values). Range separators can be:

Multiple dimensions: 6 x
Use :
 * → 6 by

Use, multiplication sign, or  , letter:
 * → 6 x

In science, the formal way is to set  and on (keeping dimensions right, like in area = x km2):
 * → 6 x

About feet, inch in ranges and multiples
While it is possible to enter feet, inch in a simple conversion, this is not possible for ranges: Default behaviour, for comparison:
 * → 1 ft ❌
 * → 1 ft

Spelling of unit name: UK metre or US meter?
Default spelling of units is en-UK. To show en-US spelling, use us:
 * → 1 m—default
 * → 1 m

Spell out numbers: ten miles
To write a number in words, use in:
 * → 10 mi

To spell out both in and out values, use on:
 * → 10 mi

To make first letter a capital, use In, On
 * → 10 mi
 * → 10 mi

Remember that the spelling of the units (ft, m) is independently set by abbr. To the extreme:
 * → 10 mi

Inserted before units: 4 planted acres
is similar, but has no separator after the specified text, and can have different text for the output value:
 * → 4 acre
 * → 4 acre
 * → 4 acre

After adjective unit: A 10 ft corridor

 * → 10 ft

Plurals: 1 inch, 2 inches
The unit symbol is singular always. Depending on the preceding number only, a unit name can be shown plural.
 * → 1 metre
 * → 2 metre
 * → 2 metre

Entering the unit spelled  forces singular output "foot", whatever the number is.
 * Exception:
 * → 100 foot

Fractions: one-eighth of an imperial pint
The convert template also supports spelling out fractions. Any additional words needed for the fraction can also be added at the end of the template.
 * → 3+1/2 oz
 * → 1/8 imppt

Wrapping and line breaking

 * See

Using an SI prefix: gigameter (Gm), or micrometer (&#x03BC;m)
Units can have an SI prefix like  before the unit: , and   before the name:. These are plain multiplication factors.

To illustrate, these are trivial calculations (from meter to meter), showing the multiplication factor:
 * 12 Gm
 * 12 μm

The prefix can be added before the SI unit (here: unit  for meter):
 * → 12 Gm
 * : 12 Mm
 * : 12 km
 * : 12 mm
 * : 12 μm
 * : 12 um (letter "u" can be used for "&#x03BC;" here)

The prefix can be used in the output unit:
 * → 12000 mi
 * → 12 in

As an exception, the non-SI unit "inch" can have the "&#x03BC;" prefix too)
 * → 12 μm

In the unit: e6m
Engineering number notations like 76 (for 7 × 106) can be entered as a "prefix" to the unit:
 * → 7 e6m

The same is possible for the output unit:
 * → 23,000,000 ft

Any standard unit (not a combination, multiple, or built-in unit) can have such a prefix:
 * (thousand),
 * (million),
 * (billion),
 * (trillion),
 * (quadrillion).

Scientific notation: 1.23 × 10−14
In scientific notation, a number is written like 12.3e-15. The plain number has exactly one digit before the decimal point.

With, the input can be in e-notation such as. This value is displayed as a power of ten, and the output is displayed in scientific notation, except that an output value satisfying 0.01 <= v < 1000 is shown as a normal number. In addition, if the output value is 1000 and sigfig=4 is used, the value is displayed as a normal number.
 * → 12.3e-15 atm
 * → 0.00000005 atm

Input with fractions: 1+1/2 in
The number to convert can be written in fractions. Both  (keyboard slash) and   (fraction slash) are accepted:
 * → 1/2 in
 * → 1⁄2 in

With integers, use a  sign
 * → 2+1⁄2 in

When negative, use a hyphen  and repeat it:
 * → -2-1⁄2 in
 * → 2-1⁄2 in Note: this is read as a range
 * → -2+1⁄2 in ❌ Should be a number, not an expression (do not require a calculation)

Output with horizontal fraction bar in: $1⁄2$ inch
Using a double slash returns a horizontal bar fraction:
 * → 1//2 in
 * → 2+1//2 in

Thousands separator: 1,000 mi or 1000 mi
In input, a comma for thousands separator is accepted but not required; a gap (space) is not accepted. In output, by default, the thousand separator is the comma:
 * → 1234567 m
 * → 1,234,567 m
 * → 1 234 567 m ❌

Set off to remove the separator from the output:
 * → 1234567 m

Use gaps to use digit grouping by gap (thin space) as a thousands separator: Default behaviour, for comparison:
 * → 1234567 m
 * → 1234567 m

Setting 5 will only add the separator when the number of digits is 5 or more: Default behaviour, for comparison:
 * → 1234 m
 * → 1234567 m
 * → 1234 m

Brackets and separators: 10 m [33 ft]
Punctuation that distinguishes the two measurements is set by disp. Options are:  (the default),  ,  ,  ,  ,  : Default behaviour, for comparison:
 * → 10 m
 * → 10 m
 * → 10 m
 * → 10 m

Setting br will force a new line
 * → 10 m

Also br will force a new line, and keep the brackets (useful in tables):
 * → 10 m

Setting x allows any text as separator:
 * → 10 m (To display spaces, use )

Flipping (reordering) the two measurements: 1 mi
Setting flip will flip (swap) the two measurements: Default behaviour, for comparison:
 * → 1 mi
 * → 1 mi

When converting to multiple units, the effect is:
 * → 10 km
 * → 10 km

Displaying parts of the result: 2 cuyd
It is possible to display only parts of the conversion result:

Display both input name and symbol: 2 kilopascals [kPa]
Setting ~ returns both name and symbol of the first (input) unit:
 * → 2 kPa
 * → A 2 kPa pressure

Table options
For the wikitable structure, there are three options: add a line-break, split the result over columns and make the table sortable.

Enforced line break
br adds a line-break and omits brackets.

br adds a line-break and does add brackets to the converted value. This may be useful in tables:

Table columns showing numbers only
Using {convert} in a table cell, with table splits the result over two columns:

tablecen does the same, and also centers the text:

The units are added as a column header:
 * {| class=wikitable

! style="width:10em;" | ! style="width:10em;" | m ! style="width:10em;" | ft
 * table
 * 10 m
 * tablecen
 * 20 m
 * &lt;other> (default)
 * 30 m
 * }
 * &lt;other> (default)
 * 30 m
 * }

Sorting
Use on to include a hidden numerical sortkey in the output, suitable for use in a table with sortable columns. Technically, this places a hidden string before the actual displayed values:
 * → &lt;span style="display:none">7001100000000000000 &lt;/span>10 metres (33&amp;nbsp;ft)

Use both table and on together to produce table columns (pipe symbols) for each value in sortable columns:


 * {| class="wikitable sortable"

! ! m ! ft
 * A
 * 15+3/4 m
 * B
 * 15.5 m
 * C
 * 16.0 m
 * D
 * 16 m
 * }
 * D
 * 16 m
 * }
 * }

The generated sortkey is calculated in a consistent way based on both the value and its unit as passed to the convert template. In most cases convert uses the passed value converted to SI base units. It is therefore not necessarily the displayed value or other alternate units and is calculated regardless of output format options. Using different units or different order of units in individual rows should therefore not lead to incorrect sorting, although variations in rounding can give surprising results, since an unrounded number is used for the sortkey.

'per' units: kg/hl
When using a slash, a unit like  is recognized as kilograms per hectolitre and will be converted with other mass/volume units.
 * → 1000 kg/hl

Units of difference: 10 &deg;C higher; how much in &deg;F
When a number is the measurement for a difference, one conversion is done. This may occur in temperatures (°C, °F, K). Compare this to a range, when two conversions are done.

The only available units of difference are: C-change, F-change and K-change.
 * , regular temperature
 * , difference (e.g., "The temperature changed from 30 into 40 °C")
 * , range (e.g., "The temperature is between 10 and 15 °C")

Consistently, into multiple units:
 * → A rise of 10 C-change

In input
Base document lists options for multiple unit input (like  ). It can catch predefined sets only (units that can be subdivided; e.g., yd into ft):
 * → 1 yd
 * → 2 ft
 * → 1 lb

In output
Available multiple-unit output options predefined, like  and. The full list is at. Default behaviour, for comparison:
 * → 2 m
 * → 2 m, using a space, returns the decimal point
 * → 2 m

See also:
 * hands a length used to measure horses
 * Long ton a weight in ton, cwt, qr and lb

Currency per unit: $/mi &rarr; $/km
Using currency symbols in a $ per unit value, you can convert the per-unit:
 * → 10 $/mi

You can set the currency in both values using €:
 * → 10 $/mi

It is not possible to convert the currency. So, this result (mixed currencies) is not possible: $15 per mile (€8.6/km) ❌

Using convert inside templates
For usage in template code, like infoboxes, has these options:
 * Pre-formatting fraction input
 * Module:Convert/helper can read regular input and pre-format it into -accepted input.
 * Your template can accept 16 7/8 and use &rarr;

Note: to return that property value for an other article, use qid.
 * Using a Wikidata property
 * Adding the Wikidata property code, like code P2073, to your template code automatically returns the Wikidata property for that article, and convert it. Both number and unit are read.

Example for : Note: this example uses Q1056131 (testing for )
 * &rarr; ftin undefined
 * &rarr; km undefined
 * &rarr; km undefined
 * For example see template:Infobox Telescope.

TemplateData
{	"description": "Converts measurements to other units.", "params": { "1": {			"label": "value", "description": "the value to convert", "type": "number", "required": true },		"2": {			"label": "from unit", "description": "the unit for the provided 'value'", "type": "string/line", "example": "km", "required": true },		"3": {			"label": "to units", "description": "the unit to convert into", "type": "string", "example": "mi", "suggested": true },		"4": {			"label": "precision or suffix", "description": "significant digits after decimal dot or, if negative, exponent of ten", "type": "number" },		"lk": { "label": "link units", "description": "“on” all, “in” input, “out” output or “off” no units", "default": "off", "type": "string", "example": "on" },		"abbr": { "label": "abbreviation", "description": "display for the units: “on” unit symbols, “off” all unit names in full words, “in” input unit symbol, “out” abbreviated output units, “unit” both input and output units abbreviated when using scientific notation, “values” no units at all", "default": "out", "type": "string" },		"sp": { "label": "spelling", "description": "“us” display U.S. spelling of unit names", "type": "string", "example": "us" },		"adj": { "label": "adjective", "description": "adjectival form (singular unit name appended by hyphen) “on” or “mid” to put conversion at end", "type": "boolean", "example": "on", "default": "off" },		"disp": { "label": "conversion", "description": "display conversion result: “or” after ‘or’, “x” with custom prefix and suffix, “b” in parentheses, “table”/“tablecen”, “output only” alone, “output number only” alone and without unit, “unit” not at all but input unit; if the value is a number it is used as precision", "type": "string", "example": "b" },		"order": { "label": "ordering", "description": "“flip” returns converted value first, input value second.", "type": "string", "example": "flip" },		"sigfig": { "label": "significant figures", "description": "number that sets the number of significant figures", "type": "number" },		"round": { "label": "rounding output", "description": "“5” rounds the output number to nearest multiple of 5, “25” to nearest multiple of 25, “each” rounds each number in a range", "type": "number" },		"comma": { "label": "thousands separator", "description": "Sets or suppresses thousand separator in the numbers. “off” = no separator; “gaps”: use space not comma; “5” and “gaps5”: only add separator when number > 5 positions (10,000 or more)", "default": "on", "type": "string", "example": "off" },		"sortable": { "label": "sort key", "description": "“on” generates a hidden sort key", "type": "string", "example": "on" }	},	"format": "inline" }