• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

Avenger

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

Avenger

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

Avenger

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

Avenger

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

Avenger

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

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

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

Mamont220

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!