Для форматирования чисел в XSLT существует стандартная функция format-number(number, format, decimal-format). Эта функция форматирует число таким образом, что вставляет разделитель тысяч и обрезает число десятичных знаков. Но у неё есть один баг: вставка разделителя тысяч осуществляется даже тогда, когда число содержит всего 4 знака, т.е меньше 10 тысяч, а согласно стандарту это делать не нужно. Если у вас многоязычный сайт, то форматирование чисел для разных локалей должно быть разным.
Привожу пример решения задачи в виде одного XSLT-шаблона:
