الگو:Number table sorting

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
نشان توضیحات توضیحات الگو [ویرایش] [تاریخچه] [پاکسازی میانگیر]
میانبُر:
{{Nts}}

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.

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 اچ‌تی‌ام‌ال markup which forces the جاوااسکریپت الگوریتم مرتب‌سازی to sort the column alphabetically.

Purpose[ویرایش]

There are at two cases where this template is useful:

  1. When numbers are followed by some text
  2. When numbers are preceded by some text other than a currency symbol.

Parameters[ویرایش]

The template has only one required parameter: a real number. These examples use the name of the redirect, {{nts}}, for brevity.

Optional parameters
  • prefix: To display some text before the number, use |prefix =some prefix
    {{nts|123456789.00123|prefix=approx. }}&0000000123456789.001230۱۲۳٬۴۵۶٬۷۸۹٫۰۰۱۲۳
  • format: For unformatted outpu, use |format =no
    {{nts|123456789.00123}}&0000000123456789.001230۱۲۳٬۴۵۶٬۷۸۹٫۰۰۱۲۳
    {{nts|123456789.00123|format=no}}&0000000123456789.001230۱۲۳٬۴۵۶٬۷۸۹٫۰۰۱۲۳
  • debug: To display the sort key, use |debug =yes.
    {{nts|123456789.00123|debug=yes}}&0000000123456789.001230۱۲۳٬۴۵۶٬۷۸۹٫۰۰۱۲۳
    {{nts|-123456789.00123|debug=yes}}&-1-1-1-1-1-1-1-2-3-4-5-6-7-8-90.998770-۱۲۳٬۴۵۶٬۷۸۹٫۰۰۱۲۳

Apart 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.

Sort key[ویرایش]

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.

Numbers within range
  • For numbers between 10−308 and 10308 the first four digits are calculated by adding 7000 to the order of magnitude and the next fifteen digits are calculated by multiplying the significand by 1014.
  • For numbers between −10−308 and −10308 the first four digits are calculated by subtracting the order of magnitude from 2999 and the next fifteen digits are calculated by subtracting the significand from 10 multiplying the difference by 1014.
  • The sort key for 0 is 5000000000000000000.
Numbers out of range
  • Numbers larger than 10308 are assigned the sort key 9000000000000000000.
  • Numbers smaller than −10308 are assigned the sort key 1000000000000000000.
  • Numbers between 10−308 and 0 or between 0 and −10−308 are assigned the sort key 5000000000000000000.

Limitations[ویرایش]

  • Any subset of numbers larger than 10308 are sorted together.
  • Any subset of numbers smaller than −10308 are sorted together.
  • Any subset of numbers between 10−308 and −10−308 are sorted together.
  • If a non-numeric value is given as the first unnamed parameter the results are undefined.
  • The hyphen minus sign is converted into a true minus sign; note, though, that this means no more than 12 significant figures are possible.
  • A prefix (using the prefix parameter) does not affect the sort order.

Examples[ویرایش]

{{nts|123456789.00123}}&0000000123456789.001230۱۲۳٬۴۵۶٬۷۸۹٫۰۰۱۲۳

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}} &خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{».خطای عبارت: نویسه نقطه‌گذاری شناخته نشده «{»{{{۱}}}
{{nts||debug=yes}} &خطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظارخطای عبارت: عملگر / دور از انتظار-1.000000
{{nts|between 2 and 3|debug=yes}} &خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between»خطای عبارت: کلمه ناشناخته «between».خطای عبارت: کلمه ناشناخته «between»between ۲ and ۳
{{nts|10|prefix=approx.{{sp}}|debug=yes}} &0000000000000010.000000۱۰
{{nts|-5|debug=yes}} &-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-6.1000000
{{nts|-4|debug=yes}} &-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-5.1000000
{{nts|-73|debug=yes}} &-1-1-1-1-1-1-1-1-1-1-1-1-1-1-8-4.1000000-۷۳
{{nts|-67|debug=yes}} &-1-1-1-1-1-1-1-1-1-1-1-1-1-1-7-8.1000000-۶۷
{{nts|-20345678901234567.12345678|debug=yes}} &-1-4-5-6-7-8-90-1-2-3-4-5-6-7-8.432000000-۲۰٬۳۴۵٬۶۷۸٬۹۰۱٬۲۳۴٬۵۶۷٫۱۲۳۴۵۶۷۸
{{nts|123.456e3|debug=yes}} &0000000000123456.000000۱۲۳٫۴۵۶e۳
{{nts|123.456e2|debug=yes}} &0000000000012345.600000۱۲۳٫۴۵۶e۲
{{nts|20345678901234567.12345678|debug=yes}} &0345678901234568.-432000000۲۰٬۳۴۵٬۶۷۸٬۹۰۱٬۲۳۴٬۵۶۷٫۱۲۳۴۵۶۷۸
{{nts|100345678901234567.12345678|debug=yes}} &0345678901234560.4560000000۱۰۰٬۳۴۵٬۶۷۸٬۹۰۱٬۲۳۴٬۵۶۷٫۱۲۳۴۵۶۷۸
{{nts|1234567890123456.12345678|debug=yes}} &1234567890123455.-44000000۱٬۲۳۴٬۵۶۷٬۸۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|234567890123456.12345678|debug=yes}} &0234567890123456.-3906250۲۳۴٬۵۶۷٬۸۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|34567890123456.12345678|debug=yes}} &0034567890123456.125000۳۴٬۵۶۷٬۸۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|4567890123456.12345678|debug=yes}} &0004567890123456.123047۴٬۵۶۷٬۸۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|567890123456.12345678|debug=yes}} &0000567890123456.123413۵۶۷٬۸۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|67890123456.12345678|debug=yes}} &0000067890123456.123459۶۷٬۸۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|7890123456.12345678|debug=yes}} &0000007890123456.123457۷٬۸۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|890123456.12345678|debug=yes}} &0000000890123456.123457۸۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|90123456.12345678|debug=yes}} &0000000090123456.123457۹۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|0123456.12345678|debug=yes}} &0000000000123456.123457۰٬۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|123456.12345678|debug=yes}} &0000000000123456.123457۱۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|23456.12345678|debug=yes}} &0000000000023456.123457۲۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|3456.12345678|debug=yes}} &0000000000003456.123457۳٬۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|456.12345678|debug=yes}} &0000000000000456.123457۴۵۶٫۱۲۳۴۵۶۷۸
{{nts|56.12345678|debug=yes}} &0000000000000056.123457۵۶٫۱۲۳۴۵۶۷۸
{{nts|6.12345678|debug=yes}} &0000000000000006.123457۶٫۱۲۳۴۵۶۷۸
{{nts|.12345678|debug=yes}} &0000000000000000.123457٫۱۲۳۴۵۶۷۸
{{nts|0.12345678|debug=yes}} &0000000000000000.123457۰٫۱۲۳۴۵۶۷۸
{{nts|0.02345678|debug=yes}} &-1000000000000000.023457۰٫۰۲۳۴۵۶۷۸
{{nts|0.00345678|debug=yes}} &-1-100000000000000.003457۰٫۰۰۳۴۵۶۷۸
{{nts|0.00045678|debug=yes}} &-1-1-10000000000000.000457۰٫۰۰۰۴۵۶۷۸
{{nts|0.00005678|debug=yes}} &-1-1-1-1000000000000.000057۰٫۰۰۰۰۵۶۷۸
{{nts|0.00000678|debug=yes}} &-1-1-1-1-100000000000.000007۰٫۰۰۰۰۰۶۷۸
{{nts|0.00000078|debug=yes}} &-1-1-1-1-1-10000000000.000001۰٫۰۰۰۰۰۰۷۸
{{nts|0.00000008|debug=yes}} &-1-1-1-1-1-1-1000000000.000000۰٫۰۰۰۰۰۰۰۸
{{nts|.00000008|debug=yes}} &-1-1-1-1-1-1-1000000000.000000٫۰۰۰۰۰۰۰۸
{{nts|0|debug=yes}} &-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1.000000۰

See also[ویرایش]

  • {{Ntc}} - creates a center aligned sortable numeric table cell
  • {{Ntl}} - creates a left aligned sortable numeric table cell
  • {{Ntr}} - creates a right aligned sortable numeric table cell
  • {{Ntsh}} - same as this template, but does not display (hides) the number
  • {{Ntsc}} - for converted units, sorts by the first number
  • {{Ntss}} - same as Nts, but allows for the number to be scaled
  • {{Convert}} - has a sortable option
  • {{Dts}} - for sorting dates
  • {{Sms}}