Template:Number table sorting

From TrainzOnline
Jump to navigationJump to search



Nts stands for Number Table Sorting and is used to display numbers with thousands separator in a sortable table and have them numerically sorted in alphabetic sort mode. It is applied to all numbers of a column, in cases where numeric sort mode does not work or is not desired.

The supplied input numbers should not have thousands separators. Apart from the added thousands separators the numbers are formatted like supplied (scientific notation or not, leading and trailing zeros, and a zero before the decimal point or not). This formatting does not affect the sorting order except for numbers not satisfying the limitations mentioned below.

Purpose

If some table cells in a column contain text after the number, or if the numbers are preceded by some fixed text other than a currency symbol, alphabetic sorting mode is needed.

Also, formerly, for table sorting to function correctly, numbers had to be entered with not more than one thousands separator. As a workaround alphabetic sorting mode was applied, and the numbers provided with a hidden part so that alphabetic sorting corresponded with numeric sorting. Since a mix in one column of numbers formatted for alphabetic sorting and plain numbers does not allow proper sorting, adding a number in an existing table may require putting it in the format used in that column.

Method

This template automatically creates hidden code like <span style="display:none">&0000000123456789.001230</span> before the actual displayed number. The preceding ampersand forces the sorting routine to use text sort. The routine sorts the total text without the tags, which corresponds to numeric sorting due to the leading zeros.

Limitations

  • Negative numbers do not sort correctly with this template: while they correctly come at the low end, mutually they are sorted in reverse order (i.e., in the order of the absolute value).
  • The maximum number is 1×1016. While larger numbers correctly come at the high end, they are mutually sorted alphabetically.
  • There is a maximum of 6 digits after the decimal separator. When using a consistent non-scientific notation numbers with more than 6 digits after the decimal separator still sort correctly. They sort correctly with respect to 0 if they are written with the zero before the decimal point.
  • In the case of text before a number, the entry is positioned like 1×1016. If there are more of such entries they are mutually sorted alphabetically (primarily based on the text).

Parameters

The template has only one parameter: a real number without thousand separators.

Example

{{Nts|123456789.00123}}

expands to

 <span style="display:none">&0000000123456789.001230</span> 123,456,789.00123 

which is rendered as Template:Number table sorting/positive123,456,789.00123

Debug option

Template:Xpdop3pec

More examples

Below are more examples, also illustrating the limitations mentioned above.

Note: Javascript sorting order: &+,-.0123456789Ee~

sortkey and number
{{Number table sorting/Expression error: Unrecognized word "between". 1=Expression error: Unrecognized word "between".
}}between 2 and 3
{{Number table sorting/Expression error: Unrecognized word "approx". 1=Expression error: Unrecognized word "approx".
}}approx. 10
Template:Number table sorting/negative−5
Template:Number table sorting/negative−4
Template:Number table sorting/negative−73
Template:Number table sorting/negative−67
Template:Number table sorting/positive123,456
Template:Number table sorting/positive20,345,678,901,234,570.00000000
Template:Number table sorting/positive100,345,678,901,234,560.00000000
Template:Number table sorting/positive1,234,567,890,123,456.00000000
Template:Number table sorting/positive234,567,890,123,456.12000000
Template:Number table sorting/positive34,567,890,123,456.12500000
Template:Number table sorting/positive4,567,890,123,456.12300000
Template:Number table sorting/positive567,890,123,456.12340000
Template:Number table sorting/positive67,890,123,456.12346000
Template:Number table sorting/positive7,890,123,456.12345700
Template:Number table sorting/positive890,123,456.12345680
Template:Number table sorting/positive90,123,456.12345678
Template:Number table sorting/positive0,123,456.12345678
Template:Number table sorting/positive123,456.12345678
Template:Number table sorting/positive23,456.12345678
Template:Number table sorting/positive3,456.12345678
Template:Number table sorting/positive456.12345678
Template:Number table sorting/positive56.12345678
Template:Number table sorting/positive6.12345678
Template:Number table sorting/positive.12345678
Template:Number table sorting/positive0.12345678
Template:Number table sorting/positive0.02345678
Template:Number table sorting/positive0.00345678
Template:Number table sorting/positive0.00045678
Template:Number table sorting/positive0.00005678
Template:Number table sorting/positive0.00000678
Template:Number table sorting/positive0.00000078
Template:Number table sorting/positive0.00000008
Template:Number table sorting/positive.00000008
Template:Number table sorting/positive0

See also

This page has it's origination in the Wikimedia Foundation's development website Meta-wiki or has been exported and is now part of the newer Mediawiki software resources website for assisting new wikis with startup organization and has been copied according to the terms of the (CC-BY-SA-3.0), the GFDL standard GNU pulic license or the source file(s) is/are in the public domain.