Как форматировать числа ниже в XSLT 1.0. Входные данные: иногда положительное число, а иногда отрицательное.

Ввод:

-4
-1
2

Выход:

00000-4
00000-1
0000002
1
sum 14 Окт 2013 в 14:01
Это ваш текущий результат или желаемый результат?
 – 
Michael Kay
14 Окт 2013 в 16:14
Это мой желаемый результат.
 – 
sum
14 Окт 2013 в 16:37

1 ответ

Лучший ответ

XSLT предоставляет функцию format-number, которая может вам здесь помочь.

format-number(theNumber, '0000000')

Даст вам 0000002 за 2 и -0000004 за -4. Но если вы действительно хотите поставить начальные нули перед знаком минус в отрицательном случае, тогда самый простой подход - просто рассматривать все это как манипуляцию со строкой, а не форматирование чисел. Определить переменную

<xsl:variable name="zeros" select="'0000000'" />

А потом скажи что-нибудь вроде

concat(substring($zeros, string-length(theNumber)+1), theNumber)

Бит substring определяет, сколько начальных нулей нужно добавить, например для -4 будет использоваться подстрока $zeros, начинающаяся с третьего символа, то есть с пяти нулей.

5
Ian Roberts 14 Окт 2013 в 14:29