Округление в Xslt

  • Автор темы Avenger
  • Дата начала
A

Avenger

#1
У меня выполняются пару математических операций и получаются не целые числа, как округлить до двух знаков после запятой?
 
A

Avenger

#2
уже разобрался, вот так можно округлить:
Используя функцию format-number.
Например, format-number(3.1415926,'#.00') и на выходе получим 3.14
 
A

Avenger

#3
round если только нужны целые числа, он все до них и округляет по правилам округления
 
A

Avenger

#4
sax_ol
а не будет ли проще в таком случае использовать format-number(1.0056,'#.00') и если понадобится более точное округление или наооборот - добавлять (удалять) 1 ноль, а не два. и выглядит более наглядно.
 
A

Avenger

#5
округляет, поэтому я его и использую

есть еще две функции в xslt, которые округляют
первая, floor() - возвращает наибольшее целое меньшее аргумента, например floor(3.3) вернет 3.
вторая, ceiling() - возвращает наименьшее целое число, которое больше, чем число в аргументе, например, ceiling(3.3) вернет 4

итого в xslt получается 4 функции, совершающие округления.
 
M

Mamont220

#6
А как мне вывести в Xslt округленную сумму?
Например:
Есть три числа 1.013, 1.025, 1.036
Мне надо вывести эти три числа, но с двумя знаками после запятой и сумму (sum(блок)) этих округленных чисел, тоже два знака после запятой.
Округляю при помощи round, получаю: 1.01, 1.03, 1.04
Делаю тоже самое для суммы, но итог получается с отклонением, так как функция суммы сначала суммирует значения и только потом можно округлить = 3,07 - ошибка на копейку, если чисел будет больше, расхождение будет увеличиваться.....Как быть?