| This template uses
Lua
:
|
This template is used to easily present values in
scientific notation
, including uncertainty and/or units, as prescribed by Wikipedia's
Manual of Style
.
Val specializes in numeric
values
, especially those with
scientific notation
s,
uncertainty notation
s, and those with measurement
values
with physical units. Because these expressions are covered by the Manual of Style, Val provides the stylized output for you, and keeps them from wrapping across lines.
Express a numeral:
{{val|123456.78901}}
→
value
, formatted with gaps:
123
456
.789
01
, or with
|fmt=commas
→
123,456.78901
{{val|
number
|
number
}}
→
value
±
uncertainty
, like
123,478
±
56
{{val|
number
|
?????:Hilite
number
?????:Hilite
}}
→
value
(
uncertainty
), like
12,345(56)
{{val|
number
|
number
|
number
}}
→
value
+uncertainty
?uncertainty
like
1
234
+56
?78
Express a measurement value:
{{val|4|ul=m2}}
→
4
m
2
. The
m2
is a "unit code" that Val uses to lookup the link to the unit's article, and the formatting of the unit symbol. Val links the units to the page it has on file for them. See {{
Val/list
}}.
There are a large number of unit codes that Val understands and keeps "up to code". A unit code is the just abbreviated unit name, but these can get quite involved for a compound or composite unit, with "multipliers" or "dividers". See
Module:Val/units
.
Some unit-code flexibility is provided by having four parameters to work the unit-code system: whether to link one or not, (see
Overlinking
), and whether to link the numerator or denominator of a unit ratio separately.
{{val|
number
|
ul=
unit code
}}
→
number
symbol
, such as
9.8
km
2
{{val|
number
|
u=
unit code
}}
→
number symbol
, such as
9.8 km
2
{{val|
number
|
u=
unit code
|
u
?????:Hilite
l=
unit code
}}
→
number
symbol
?????:Hilite
symbol
, such as
9.8 gal/
min
{{val|
number
|
ul=
unit code
|
u
?????:Hilite
=
unit code
}}
→
number
symbol
?????:Hilite
symbol
, such as
9.8
pc
/year
To bypass the unit code system, if
|u=
does not recognize your unit code, it will accept any wikitext and render it as usual.
{{val|5.4|u=[[kg]]⋅[[meter|m]]/s<sup>2</sup>}}
→
5.4
kg
⋅
m
/s
2
{{val|7.6|u=[[metre per second squared|m/s<sup>2</sup>]]}}
→
7.6
m/s
2
See
Module:Val/units
for how to add units to the unit code system.
Sometimes a number and unit code is not enough. A prefix or suffix are also available,
|p=
and
|s=
.
{{val|7600|u=C⋅Ga|p=>|s=<}}
→
>7600 C⋅Ga<
{{val|7600|u=C|p=<span style="color:green"><sup>|s=</sup></span>}}
→
7600 C
See {{
val/testcases
}} to learn the val parameters by an example. It is comprehensive, and there are over 100 examples.
Val takes three unnamed parameters. The first is always the numeric value. When the second and third are numbers they become the various uncertainty notations, but the second unnamed parameter can also serve to
grammatically join
the first and third numbers.
Val clears surrounding spaces in its unnamed parameters.
1st
or
|1=
|
A number. Can be in
decimal point
notation or in
e notation
. This number is the basis of the Val formatting.
{{val|1234567.1234567}}
→
1
234
567
.123
4567
{{val|.1234}}
→
0.1234
(adds the zero)
{{val|+1234}}
→
+1234
(displays the plus)
{{val|-1234}}
→
?1234
(replaces the
hyphen-minus
with a
minus sign
)
{{val|12e34}}
→
12
×
10
34
(
E notation
)
|
|fmt=
|
By default, numbers are formatted with gaps separating groups of three digits in both integer and fractional part.
However, by default, four-digit integers are not formatted; use
|fmt=gaps
to force gaps.
Use
|fmt=commas
to delimit the integer part of the number with commas.
Use
|fmt=none
for no formatting (no gaps or commas).
{{val|1234567.1234567}}
→
1
234
567
.123
4567
{{val|1234567.1234567|fmt=commas}}
→
1,234,567.1234567
{{val|1234}}
→
1234
{{val|1234|fmt=gaps}}
→
1
234
{{val|1234.5}}
→
1
234
.5
{{val|1234.5|fmt=none}}
→
1234.5
|
|end=
|
Put something at the end of the main number (before anything else that might follow).
{{val|11|end=<END>}}
→
11<END>
{{val|11|22|end=<END>}}
→
11<END>
±
22
{{val|1111|(22)|end=<END>}}
→
1111<END>(22)
{{val|11|22|33|end=<END>}}
→
11<END>
+22
?33
{{val|11|ul=m/s|end=<END>}}
→
11<END>
m/s
|
2nd
or
|2=
|
Uncertainty
in either format.
{{val|11|22}}
→
11
±
22
{{Val|11|(22)}}
→
11(22)
A conjunction to join two numbers. Useful for ranges, grammatical output, etc.
{{val|11|-|33}}
→
11?33
{{val|11|?|33}}
→
11?33
{{val|11|,|33}}
→
11, 33
{{val|11|by|33|e=9}}
→
(11 by 33)
×
10
9
{{val|11|and|33|end=$}}
→
11$ and 33$
{{val|11|or|33}}
→
11 or 33
{{val|11|to|33}}
→
11 to 33
{{val|11|x|33}}
→
11 × 33
{{val|11|×|33}}
→
11 × 33
{{val|11|/|33|ul=m/s}}
→
11/33
m/s
Note that for dashes or x's, the various kinds all obtain one properly styled output.
|
3rd
or
|3=
|
Asymmetric uncertainty.
{{Val|11|22|33}}
→
11
+22
?33
|
|errend=
or
|+errend=
and
|-errend=
|
Appends something after an uncertainty.
{{val|11|22|errend=<Errend>}}
→
11
±
22<Errend>
{{val|11|22|33|+errend=<+Errend>|-errend=<?Errend>}}
→
11
+22<+Errend>
?33<?Errend>
|
|u=
or
|ul=
|
The unit code
. Val adds a space and the unit.
|ul=
Link the unit.
|u=
Don't link the unit. Also accepts
wiki markup
in lieu of a unit code.
{{val|11|ul=m}}
→
11
m
|
|up=
or
|upl=
|
A unit code, but instead of a space Val adds a slash and the unit, a "per" unit (the denominator), to form a ratio.
|upl=
Link the per unit.
|up=
Don't link the per unit.
The ratio can be of two unit codes, or a prefix and a unit code. Val will add parentheses to disambiguate, if a unit code has a dot or a slash.
{{Val|11|ul=J/C|upl=F/m}}
→
11 (
J/C
)/(
F/m
)
{{Val|11|upl=acre|p=$}}
→
$11/
acre
{{Val|11|ul=km/s|upl=Mpc}}
→
11 (
km/s
)/
Mpc
{{Val|11|ul=kg.m|upl=s-2}}
→
11 (
kg?m
)/
s
?2
|
|p=
|
Prefix the entire Val expression. Non-spaced, but accepts markup.
{{Val|11|22|ul=m/s|p=<Prefix>}}
→
<Prefix>11
±
22
m/s
{{Val|11|22|ul=m/s|p=<Prefix> }}
→
<Prefix> 11
±
22
m/s
|
|s=
|
Suffix the entire Val expression. Non-spaced, but accepts markup.
{{Val|11|22|ul=m/s|s=<Suffix>}}
→
11
±
22
m/s
<Suffix>
{{Val|11|22|ul=m/s|s= <Suffix>}}
→
11
±
22
m/s
<Suffix>
|
|e=
|
Exponent. Val alternatively accepts e notation in the first parameter; these are mutually exclusive (see "1st" argument above).
{{Val|11|22|33|e=11}}
→
11
+22
?33
×
10
11
{{Val|11e11|22|33}}
→
11
+22
?33
×
10
11
{{Val|e=33}}
→
10
33
|
|long scale=
|
Usually a unit is the short
ton
and
billion
means
1
×
10
9
. But there are long versions of these units and others. Use
|long scale=on
to assign your unit to the long scale instead. The unit code's link will change and it will sort differently in tables. "See
Long and short scales
".
|
|nocategory=
|
If set to any value, errors in the use of this template will not cause the page to be added to the
Pages with incorrect formatting templates use
category. This is useful for documentation and test pages that do not need to be fixed.
|
There is strict checking on the validity of arguments; any incorrect use will result in an error, which is displayed using {{
FormattingError
}}. Pages that contain incorrect use of this template will show up on
Category:Pages with incorrect formatting templates use
.
Val checks for unsupported parameters and gives a relatively subtle warning if found. See
tracking category
to track any of these improper usages on existing on the wiki. Hold the mouse over "warning" to see details. Here is what warnings look like:
{{val|1.23|exp=6|u=m/s}}
→
1.23 m/s
Error in {{
val
}}: Val parameter "exp=6" is not supported
{{val|1.23|us=kbit/s}}
→
1.23
Error in {{
val
}}: Val parameter "us=kbit/s" is not supported
{{val|1.23|.05|.04|.03|u=m/s}}
→
1.23
+0.05
?0.04
m/s
Error in {{
val
}}: Val parameter 4 ignored
Format of numbers
[
?????? ???
]
{{
Val
}} produces formatting compliant with Wikipedia's
Manual of Style
.
The
MOS
recommends that numbers either be delimited using thin spaces either side of the decimal, or commas to the left and no delimiters to the right. Articles should be consistent with respect to the style of delimiting. The template defaults to the former style, this can be adjusted using
|fmt=
(see
above
).
The sort key for each sortable unit is visible at
Template:Val/list
.
Here is a live example showing the minimal markup for a sortable table:
{| class="sortable"
! Val sort test
! In base unit
|-
| {{val|3|ul= Mm }}
| {{val|3000000|u=m}}
|-
| {{val|4e6|ul= m }}
| {{val|4000000|u=m}}
|-
| {{val|1|ul= km }}
| {{val|1000|u=m}}
|-
| {{val|5e3|u= m }}
| {{val|5000|u=m}}
|-
| {{val|2|u= m }}
| {{val|2|u=m}}
|}
|
|
A sort value relates to a Val expression as follows.
- The numeric value is a starting point.
- If the unit has an SI Prefix, that order of magnitude is applied.
- The value of the unit from its own
system of units
is applied.
- If the unit is composite, each subunit is multiplied or divided per their
dimension
.
- The result is passed to {{
ntsh
}} which applies a normalization formula.
- The output of
{{ntsh}}
is added (behaviorally only, i.e. "hidden") into the table as usual, via the data-sort-value attribute of a table.
More example expressions
[
?????? ???
]
{{val|1234567.1234567}}
→
1
234
567
.123
4567
?{{val|
1234567.1234567
}}?
→ ?
1
234
567
.123
4567
?
{{val|.1234567|fmt=commas}}
→
0.1234567
{{val|+1234567|fmt=commas}}
→
+1,234,567
{{val|-1234567}}
→
?1
234
567
{{val|1.234|0.005}}
→
1.234
±
0.005
{{val|1.234|0.005|e=3}}
→
(1.234
±
0.005)
×
10
3
{{val|1.234|+0.005|-0.006}}
→
1.234
+0.005
?0.006
{{val|1.234|(5)}}
→
1.234(5)
{{val|1.234|u=m}}
→
1.234 m
{{val|1.234|u=m2}}
→
1.234 m
2
{{val|1.234|ul=m}}
→
1.234
m
{{val|123.4|ul=USgal}}
→
123.4
US gal
{{val|12.34|ul=mpgimp}}
→
12.34
mpg
‑
imp
{{val|12.34|u=deg}}
→
12.34°
{{val|1.234|0.005|u='}}
→
1.234′
±
0.005′
{{val|1.234|+0.005|-0.006|u="}}
→
1.234″
+0.005″
?0.006″
{{val|1.234|u=%}}
→
1.234%
{{val|1.234|end= [[m/s]]}}
→
1.234
m/s
{{val|12.34|u=degC}}
→
12.34 °C
{{val|12.34|u=K}}
→
12.34 K
{{val|e=5}}
→
10
5
{{val|e=5|ul=m}}
→
10
5
m
{{val|1.234e5|ul=m}}
→
1.234
×
10
5
m
{{val|1.234|e=5|ul=m}}
→
1.234
×
10
5
m
{{val|1.234e7|0.056}}
→
(1.234
±
0.056)
×
10
7
{{val|1.234|0.056|e=7}}
→
(1.234
±
0.056)
×
10
7
{{val|1.23456e-9|+0.00007|-0.00008|ul=m/s}}
→
1.234
56
+0.000
07
?0.000
08
×
10
?9
m/s
{{val|1.23456|+0.00007|-0.00008|e=-9|ul=m/s}}
→
1.234
56
+0.000
07
?0.000
08
×
10
?9
m/s
{{val|1.234e7|0.056|ul=psi}}
→
(1.234
±
0.056)
×
10
7
psi
{{val|1.234|0.056|e=7|ul=psi}}
→
(1.234
±
0.056)
×
10
7
psi
{{val|1.234e-2|(5)}}
→
1.234(5)
×
10
?2
{{val|1.234|(5)|e=-2}}
→
1.234(5)
×
10
?2
{{val|12.34|p=Δ }}
→
Δ 12.34
{{val|12.34|u=%|p=?}}
→
?12.34%
{{val|12.34|0.25|s=%}}
→
12.34
±
0.25%
Numerator/denominator
[
?????? ???
]
{{val|1.234|e=7|ul=W|up=m2}}
→
1.234
×
10
7
W
/m
2
Repeating digits
[
?????? ???
]
{{val|1.2|end={{overline|34}}|e=7|ul=W|up=m2}}
→
1.2
?????:Overline
×
10
7
W
/m
2
Even more examples
[
?????? ???
]
See the testcases at {{
val/testcases
}}.
FAQ and comments
[
?????? ???
]
- Q. Why should I use Val?
- A1. Val formats numbers:
- A2. Val preserves spacing:
- It makes sure the value does not
wrap
at the end of a line, so that it can always be read as a single value on one line in the text.
- It spaces the various parts of the value where they should be.
- A3. Configuring Val gives you your own code for automating the markup for, and a link to, any units in the entire Encyclopedia.
- A4. Val helps make Wikipedia more consistent. It adheres to the
Wikipedia Manual of Style for numbers
. Updates to the MoS can be applied to this template and result in automatic modification on values that use it. All this makes sure all values on all pages have the same
look and feel
because they will all use the same
spacing
,
font size
, positioning, etc, and makes updating and checking by the bots easier because they can recognize a value for what it is.
- Q. Why not use <math>?
- A. For the same reasons
HTML might be preferred over TeX
:
- Because the
font
in math tags differs both in face and size from the prose, which can disturb the layout of a page when used inline with the prose.
- You cannot
cut and paste
a bitmap image rendered by the LaTeX.
- Images are slower to load and use more bandwidth, which is especially bad for the mobile version of Wikipedia.
- <math> does not automatically easily align to the Manual of Style for numbers.
- Q. Are there any known issues with Val?
- A1: This template is now a new Lua module as of Aug 6, 2015. Technically, there is no good reason not to try Val.
- A2. Issues are solved rapidly by an active set of responsive template coders. See the talk page.
- Q. How should I use Val?
- A1. Val probably already has your unit on
its current list
. If not, add your own unit there.
- A2. To avoid
overlinking
, switch from
|ul=
to
|u=
and from
|upl=
to
|up=
.
- A3. Any time you have a unit to link or a table to sort, Val already setup with that unit's link and sorting value.
- A3. Use Val along with {{
Convert
}}. See
how to add units to Convert
.
- A4. Where consistent styling of long list articles, with many hundreds or thousands of numbers or units is needed.
This template is used to easily present values in scientific notation, including uncertainty and/or units, as prescribed by Wikipedia's Manual of Style.
Template parameters
[
Edit template data
]
This template prefers inline formatting of parameters.
Parameter
| Description
| Type
| Status
|
---|
Number
| 1
| A number in decimal point notation or in e notation. The main basis of the Val expression.
- Example
- -12.12345e9
| String
| required
|
---|
Uncertainty
| 2
| no description
| String
| optional
|
---|
Asymmetric uncertainty -
| 3
| no description
| String
| optional
|
---|
Format
| fmt
| By default, numbers are formatted with gaps separating groups of three digits in both integer and fractional part. However, by default, four-digit integers are not formatted; use "gaps" (without quotes) to force gaps. Use the value "commas" (without quotes) to delimit the integer part of the number with commas. Use "none" (without quotes) for no formatting (no gaps or commas).
- Example
- commas
| String
| optional
|
---|
End
| end
| Put something at the end of the main number (before anything else that might follow).
| String
| optional
|
---|
Unit
| u
| The unit code. A space and the unit will be added after the number.
- Example
- m
| String
| optional
|
---|
Unit ? wikilinked
| ul
| The unit code that will be wikilinked to a page with information about the unit. A space and this unit will be added after the number.
- Example
- m
| String
| optional
|
---|
Unit to be prefixed with a slash (/)
| up
| A unit code, but instead of a space, the template adds a slash and the unit, a "per" unit (the denominator), to form a ratio.
- Example
- s
| String
| optional
|
---|
Unit to be prefixed with a slash (/) ? wikilinked
| upl
| A wikilinked unit code, but instead of a space, the template adds a slash and the unit, a "per" unit (the denominator), to form a ratio.
- Example
- s
| String
| optional
|
---|
Prefix
| p
| Prefix for the entire Val expression. Non-spaced, but accepts markup.
| Content
| optional
|
---|
Suffix
| s
| Suffix for the entire Val expression. Non-spaced, but accepts markup.
| Content
| optional
|
---|
Exponent
| e
| Val alternatively accepts e notation in the first parameter; these are mutually exclusive (see the Number parameter).
- Example
- 9
| Number
| optional
|
---|
errend
| errend
| no description
| Unknown
| optional
|
---|
4
| 4
| no description
| Unknown
| optional
|
---|
5
| 5
| no description
| Unknown
| optional
|
---|