Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Округление в Xslt
Avenger
Вставить ник
сообщение 17:04:2008, 14:21
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 45
Регистрация: 2:02:2008
Из: Минск
Пользователь №: 15 147
Специализация: (X)HTML, CSS, DHTML, JS, XML/XSLT



Репутация: - 1 +


У меня выполняются пару математических операций и получаются не целые числа, как округлить до двух знаков после запятой?
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 7)
Avenger
Вставить ник
сообщение 17:04:2008, 18:28
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 45
Регистрация: 2:02:2008
Из: Минск
Пользователь №: 15 147
Специализация: (X)HTML, CSS, DHTML, JS, XML/XSLT



Репутация: - 1 +


уже разобрался, вот так можно округлить:
Используя функцию format-number.
Например, format-number(3.1415926,'#.00') и на выходе получим 3.14
Подняться вверх 
 
Сообщение #2
sax_ol
Вставить ник
сообщение 18:04:2008, 05:54
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


еще есть round, и им можно если именно округление нужно
Подняться вверх 
 
Сообщение #3
Avenger
Вставить ник
сообщение 18:04:2008, 08:47
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 45
Регистрация: 2:02:2008
Из: Минск
Пользователь №: 15 147
Специализация: (X)HTML, CSS, DHTML, JS, XML/XSLT



Репутация: - 1 +


round если только нужны целые числа, он все до них и округляет по правилам округления
Подняться вверх 
 
Сообщение #4
sax_ol
Вставить ник
сообщение 18:04:2008, 09:00
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Avenger
Это же просто все
допустим у вас есть 1.0056, надо округлить до 1.01, через раунд - round(1.0056 * 100)/100, математика (уж даже и незнаю кокой класс, все так поменялось smile.gif ).
Подняться вверх 
 
Сообщение #5
Avenger
Вставить ник
сообщение 18:04:2008, 11:26
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 45
Регистрация: 2:02:2008
Из: Минск
Пользователь №: 15 147
Специализация: (X)HTML, CSS, DHTML, JS, XML/XSLT



Репутация: - 1 +


sax_ol
а не будет ли проще в таком случае использовать format-number(1.0056,'#.00') и если понадобится более точное округление или наооборот - добавлять (удалять) 1 ноль, а не два. и выглядит более наглядно.
Подняться вверх 
 
Сообщение #6
sax_ol
Вставить ник
сообщение 18:04:2008, 11:47
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Ну если он округлет а не обрезает (проверьте), то почему нет.
Подняться вверх 
 
Сообщение #7
Avenger
Вставить ник
сообщение 19:04:2008, 06:46
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 45
Регистрация: 2:02:2008
Из: Минск
Пользователь №: 15 147
Специализация: (X)HTML, CSS, DHTML, JS, XML/XSLT



Репутация: - 1 +


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

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

итого в xslt получается 4 функции, совершающие округления.
Подняться вверх 
 
Сообщение #8


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 17:05:2008 - 11:28
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net