Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> округление данных 
V
    Опции темы
TaNK
Дата 23.5.2012, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Добрый день, возник вопрос на который пока не нашел ответа:
имеем запрос вида

Код

Select Round(sum(volume)*Cena,2),  Cena
From....
where.....
group by Cena


т.е. sum(volume) - имеем 500
Cena - 3.15317

Перемножаем значения и получаем 1576.585 - округляя до 2 знаков должен получить 1576.59, но получаю 1576.58
если же получаю значение 1566.495, округление дает 1566.50

Причем если же выполнить:

Код

Select round(1576.585,2), round(1566.495,2)

Получаю верные значения

Подскажите почему так происходит и как сделать так чтобы округлял по математическим правилам, Спасибо

P.S. SQL SERVER 2005 SP4
Типы данных 
volume - float
Cena   -  decimal (23,9)



--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Zioma
Дата 23.5.2012, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 22.8.2007

Репутация: 5
Всего: 5



Приведите все к одному типу.
Например:
Код

Select Round(cast(sum(volume) as decimal(23,9)) * Cena, 2),  Cena
From....
where.....
group by Cena

PM MAIL   Вверх
Akina
Дата 23.5.2012, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



TaNK, это бухгалтерское округление, половина - к чётному.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
TaNK
Дата 23.5.2012, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Akina, да об этом я где то слышал, приведение к одному типу, как подсказал Zioma помогает, ошибок пока не нашел.


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Zioma
Дата 23.5.2012, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 22.8.2007

Репутация: 5
Всего: 5



TaNK, 
В T-SQL всегда и всё приводите к одному типу - будет меньше ошибок.
PM MAIL   Вверх
TaNK
Дата 23.5.2012, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Zioma,  спасибо все получилось!


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.