#xslt #xslt-2.0
Вопрос:
Существует требование округлять значение(всегда) до двух знаков после запятой. это означает, что число 8.3333333 должно стать 8.34. Функции округления и форматирования чисел, похоже, не достигают этого. У кого-нибудь есть идеи о том, как получить желаемый результат с помощью преобразования xslt, пожалуйста?
Комментарии:
1. Что произойдет с
8.3
или8.30
?
Ответ №1:
Округление числа с точностью до двух знаков после запятой:
ceiling(100*$value) div 100
Если вам нужны конечные нули (т. Е. строка, а не число), то заверните это format number()
.
Комментарии:
1. Могут быть крайние случаи, когда это безопаснее использовать
xs:decimal
, чемxs:double
арифметику:ceiling(100*xs:decimal($value)) div 100
. Я не уверен в этом, но десятичная дробь кажется более надежной.