Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL Server 2005 ошибка round(...,2)  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9538
В запросе используется конструкция вида round(f1 * f2, 2) там получается число 3142044,235.
И результат округления 3142044,23!

Причем если выполнить select round(3142044.235,2), то округляет правильно.
5 фев 18, 16:32    [21167446]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 ошибка round(...,2)  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1743
Тип данных FLOAT?
Это же очевидно... тип приближенный
DECLARE
	@F1 FLOAT = 1571022.117500,
	@F2 FLOAT = 2.0

SELECT ROUND(@F1 * @F2, 2), @F1 * @F2, @F1, CAST(@F1 AS DECIMAL(32, 20))
--3142044,23	3142044,235	1571022,1175	1571022.11749999990000000000
5 фев 18, 16:49    [21167507]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 ошибка round(...,2)  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9538
X-Cite
Тип данных FLOAT?
Это же очевидно... тип приближенный
DECLARE
	@F1 FLOAT = 1571022.117500,
	@F2 FLOAT = 2.0

SELECT ROUND(@F1 * @F2, 2), @F1 * @F2, @F1, CAST(@F1 AS DECIMAL(32, 20))
--3142044,23	3142044,235	1571022,1175	1571022.11749999990000000000

Угу, уже разобрался, спасибо.
5 фев 18, 17:06    [21167554]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить