Форматирование чисел
Функция: строка format-number(число, строка, строка?)
Функция преобразует свой первый аргумент в строку, используя строку шаблона форматирования, представленную во втором аргументе, и десятичный формат, поименованый в третьем аргументе, либо десятичный формат по умолчанию, если третий аргумент отсутствует. Строка с шаблоном форматирования имеет синтаксис, определенный в JDK 1.1 для класса . Строка шаблона форматирования представлена в локализованной нотации: десятичный формат определяет, какие именно символы в шаблоне имеют специальное значение (за исключением символа кавычки, который не подлежит локализации). Шаблон формата не должен содержать символ денежной единицы (#x00A4), такая возможность была добавлена уже после первой реализации JDK 1.1. Названием десятичного формата должно быть , которое приводится к расширенному имени как описано в главе . Если в стиле отсутствует декларация десятичного формата с заданным , фиксируется ошибка.
Замечание: Разработчики не обязаны использовать именно реализацию JDK 1.1, а сам анализатор не обязательно реализовывать на Java.
Замечание: Чтобы контролировать округление чисел, в стилях могут использоваться другие функции из XPath.
<!-- Category: top-level-element -->
<xsl:decimal-format
name = qname
decimal-separator = char
grouping-separator = char
infinity = string
minus-sign = char
NaN = string
percent = char
per-mille = char
zero-digit = char
digit = char
pattern-separator = char />
Элемент xsl:decimal-format декларирует десятичный формат, который управляет интерпретацией шаблона формата, используемого в функции . Если присутствует атрибут name, данный элемент декларирует именованный десятичный формат. В остальных случаях декларируется десятичный формат по умолчанию. Значением атрибута name является , которое приводится к расширенному имени как было описано в главе .
Если десятичный формат по умолчанию или десятичный формат с данным именем, декларируется несколько раз, фиксируется ошибка (даже при различном ). Это можно делать только если каждый раз для всех атрибутов декларированы одни и те же значения (принимая во внимание все значения по умолчанию).
Остальные атрибуты xsl:decimal-format соответствуют методам класса из JDK 1.1. Для каждой пары методов get/set в элементе xsl:decimal-format определен соответствующий атрибут.
Следующие атрибуты задают интерпретацию символов в шаблоне формата, а также указывают символы, которые могут появиться в результате форматирования числа:
decimal-separator задает символ, используемый как десятичная точка, по умолчанию используется символ точки (.)
grouping-separator задает символ, используемый как разделитель при группировке (например, тысяч), по умолчанию используется символ запятой (,)
percent задает символ, используемый как символ процента, по умолчанию используется символ процента (%)
per-mille задает символ, используемый как символ промилле, по умолчанию используется символ промилле из набора Unicode (#x2030)
zero-digit задает символ, используемый как цифра нуль, по умолчанию используется цифра нуль (0)
Следующие атрибуты задают интерпретацию символов в шаблоне формата:
digit задает символ, используемый в шаблоне формата для обозначения цифр, по умолчанию таковым является символ решетки (#)
pattern-separator задает символ, используемый для разделения положительной и отрицательной частей в шаблоне, по умолчанию используется символ точки с запятой (;)
Следующие атрибуты определяют символы или строки, которые могут появиться в результате форматирования числа:
infinity задает строку, используемую для обозначения бесконечности, по умолчанию используется строка Infinity
NaN задает строку, используемую для представления значения NaN, по умолчанию используется строка NaN
minus-sign задает символ, используемый по умолчанию как знак "минус", по умолчанию используется символ тире-минус (-, #x2D)