This is the template sandbox page for Template:Number table sorting (diff). See also the companion subpage for test cases. |
This template is used on approximately 38,000 pages and changes may be widely noticed. Test changes in the template's /sandbox or /testcases subpages, or in your own user subpage. Consider discussing changes on the talk page before implementing them.
Preview message: Transclusion count updated automatically (see documentation). |
This template uses Lua: |
Note. Adding data-sort-type="number" to the relevant column header solves many numerical sorting problems. See Help:Sortable tables § Forcing a column to have a particular data type. |
This template can be useful when building a sortable table in which a column contains both numbers and text. This template should be applied to every number in the column and should not be used outside of sortable tables.
Currently, the template works for numbers between −10308 and 10308. Numbers outside this range will sort above or below other numbers depending on sign. See the Limitations section below.
By default the output is displayed using thousands separators. To display numbers as entered, use |format=no
.
The template generates a hidden "sort key" in the HTML markup which forces the JavaScript sorting algorithm to sort the column alphabetically.
There are at two cases where this template is useful:
The template has only one required parameter: a real number. These examples use the name of the redirect, {{nts}}, for brevity.
prefix
: To display some text before the number, use |prefix=some prefix
{{nts|123456789.00123|prefix=approx. }}
→ approx. 123,456,789.00123format
: For unformatted output, use |format=no
{{nts|123456789.00123}}
→ 123,456,789.00123{{nts|123456789.00123|format=no}}
→ 123456789.00123debug
: To display the sort key, use |debug=yes
.
{{nts|123456789.00123|debug=yes}}
→ 7008123456789001230♠123,456,789.00123{{nts|-123456789.00123|debug=yes}}
→ 2991876543210998770♠−123,456,789.00123Apart from the added thousands separators, the numbers are formatted as supplied (scientific notation or not, leading and trailing zeros, and a zero before the decimal point or not). This formatting does not affect the sorted order except for numbers not satisfying the limitations mentioned below.
TemplateData for Number table sorting
Parameter | Description | Type | Status | |
---|---|---|---|---|
Number | 1 | Your number | Number | required |
Format output? | format | If you do not wish the output to be formatted (i.e. separated by thousand separators), please put "no" in this field. (Without quotation marks.) | String | optional |
Debug | debug | If set to "yes", forces output to include debug data | String | optional |
Prefix | prefix | The prefix to be displayed before the number. E.g. "Approx." or "$" | String | optional |
The sort key is a nineteen-digit number. For numbers within range the first four digits are determined by the number's sign and order of magnitude and the next fifteen digits are determined by the number's sign and significand.
prefix
parameter) does not affect the sort order.{{nts|123456789.00123}}
→ 7008123456789001230♠123,456,789.00123
For text which follows a number, {{nts|123,456}} as of 2012
displays 123,456 as of 2012
with a numerical sort key of 123456
. This forces numerical sorting in the cell using this value instead of the default alphabetical sorting.
Below are more examples, some of which illustrate the limitations listed above.
markup | sortkey and number | error spillover |
---|---|---|
{{nts|debug=yes}} |
1000000000000000000♠ | |
{{nts||debug=yes}} |
1000000000000000000♠ | |
{{nts|between 2 and 3|debug=yes}} |
1000000000000000000♠between 2 and 3 | |
{{nts|between 2 and 3|debug=no}} |
between 2 and 3 | |
{{nts|10|prefix=approx.{{sp}}|debug=yes}} |
7001100000000000000♠approx. 10 | |
{{nts|-5|debug=yes}} |
2999500000000000000♠−5 | |
{{nts|-4|debug=yes}} |
2999600000000000000♠−4 | |
{{nts|-73|debug=yes}} |
2998270000000000000♠−73 | |
{{nts|-67|debug=yes}} |
2998330000000000000♠−67 | |
{{nts|-20345678901234567.12345678|debug=yes}} |
2983796543210987654♠−2.0345678901235×10 16 | |
{{nts|123.456e3|debug=yes}} |
7005123456000000000♠123,456 | |
{{nts|123.456e2|debug=yes}} |
7004123456000000000♠12,345.6 | |
{{nts|20345678901234567.12345678|debug=yes}} |
7016203456789012345♠2.0345678901235×10 16 | |
{{nts|100345678901234567.12345678|debug=yes}} |
7017100345678901234♠1.0034567890123×10 17 | |
{{nts|1234567890123456.12345678|debug=yes}} |
7015123456789012345♠1.2345678901235×10 15 | |
{{nts|234567890123456.12345678|debug=yes}} |
7014234567890123456♠2.3456789012346×10 14 | |
{{nts|34567890123456.12345678|debug=yes}} |
7013345678901234561♠3.4567890123456×10 13 | |
{{nts|4567890123456.12345678|debug=yes}} |
7012456789012345612♠4.5678901234561×10 12 | |
{{nts|567890123456.12345678|debug=yes}} |
7011567890123456123♠5.6789012345612×10 11 | |
{{nts|67890123456.12345678|debug=yes}} |
7010678901234561234♠6.7890123456123×10 10 | |
{{nts|7890123456.12345678|debug=yes}} |
7009789012345612345♠7.8901234561235×10 9 | |
{{nts|890123456.12345678|debug=yes}} |
7008890123456123456♠890,123,456.12346000 | |
{{nts|90123456.12345678|debug=yes}} |
7007901234561234567♠90,123,456.12345700 | |
{{nts|0123456.12345678|debug=yes}} |
7005123456123456780♠123,456.12345678 | |
{{nts|123456.12345678|debug=yes}} |
7005123456123456780♠123,456.12345678 | |
{{nts|23456.12345678|debug=yes}} |
7004234561234567799♠23,456.12345678 | |
{{nts|3456.12345678|debug=yes}} |
7003345612345678000♠3,456.12345678 | |
{{nts|456.12345678|debug=yes}} |
7002456123456780000♠456.12345678 | |
{{nts|56.12345678|debug=yes}} |
7001561234567800000♠56.12345678 | |
{{nts|6.12345678|debug=yes}} |
7000612345678000000♠6.12345678 | |
{{nts|.12345678|debug=yes}} |
6999123456780000000♠0.12345678 | |
{{nts|0.12345678|debug=yes}} |
6999123456780000000♠0.12345678 | |
{{nts|0.02345678|debug=yes}} |
6998234567800000000♠0.02345678 | |
{{nts|0.00345678|debug=yes}} |
6997345678000000000♠0.00345678 | |
{{nts|0.00045678|debug=yes}} |
6996456780000000000♠0.00045678 | |
{{nts|0.00005678|debug=yes}} |
6995567800000000000♠5.678×10 −5 | |
{{nts|0.00000678|debug=yes}} |
6994678000000000000♠6.78×10 −6 | |
{{nts|0.00000078|debug=yes}} |
6993780000000000000♠7.8×10 −7 | |
{{nts|0.00000008|debug=yes}} |
6992800000000000000♠8×10 −8 | |
{{nts|.00000008|debug=yes}} |
6992800000000000000♠8×10 −8 | |
{{nts|0|debug=yes}} |
5000000000000000000♠0 |