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

есть 2 числа
1: 54924.6948054781109
2: 22933.5385204061297

разность этих чисел: 31991.1562850719812, если ее округлить при помощи ROUND(ххх,2), то соответственно получим
31991.1600000000000

мне нужно сначала округлить 1 и 2 числа, соответственно получаем
1: 54924.69 ---почему не 70 ???
2: 22933.54
и соответсвенно разность будет уже 31991.15

Как правильно вданном случае округлять, если это цифрпы из графика платежей т.е. посути это $$$
27 июл 11, 16:33    [11035288]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
vasya drakon, всегда правильно округлять - самым последним действием.
Т.е. не стоит сознательно понижать точность расчетов, а потом надеяться на чудо.
27 июл 11, 16:36    [11035318]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
Glory
Member

Откуда:
Сообщений: 104751
vasya drakon
Добрый день.

есть 2 числа
1: 54924.6948054781109
2: 22933.5385204061297

Что за тип данных такой "число" ?
27 июл 11, 16:36    [11035319]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
NETClient
Member

Откуда:
Сообщений: 461
kDnZP
vasya drakon, всегда правильно округлять - самым последним действием.
Т.е. не стоит сознательно понижать точность расчетов, а потом надеяться на чудо.

А потом искать причины погрешности в отчетах.
27 июл 11, 16:38    [11035333]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
vasya drakon
1: 54924.69 ---почему не 70 ???
А в школе разве не рассказывали?
Или нужно банковское округление?
27 июл 11, 16:39    [11035336]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
vasya drakon
Guest
Дело в том, что эти значения все идут в отчет в Excel
Заказчик попросил все округлить до 2 чисел после запятой...

Правильное значение должно быть 31991.16

тип - numeric (28,13)

получается какие-то значения придется "подгонять"?
27 июл 11, 16:42    [11035352]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
NETClient
Member

Откуда:
Сообщений: 461
vasya drakon
Заказчик попросил все округлить до 2 чисел после запятой...
получается какие-то значения придется "подгонять"?

Почему бы тебе его об этом не спросить?
27 июл 11, 16:43    [11035359]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
vasya drakon
Дело в том, что эти значения все идут в отчет в Excel
Заказчик попросил все округлить до 2 чисел после запятой...

Правильное значение должно быть 31991.16

тип - numeric (28,13)

получается какие-то значения придется "подгонять"?

Это увлекательное развлечение))). Вот надобно 10 копеек на 3 части разделить, как вы думаете скока должно получиться?
Вариант 3+3+4 даст те же 10 копеек, если до кучи собрать, но может спровацировать вопрос: "Какого фига циферки разные?". Вобщем ловить копеечки без заказчика - гиблое дело. Лучше сразу проясните все варианты, дабы потом не было мучительно больно))).
27 июл 11, 16:53    [11035416]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
wf_to_bo
Guest
у нас была похожая лабуда.
в результате ничего в отчете не округляю (а отчет -- да, он показывает округленное, 2 знака после зпт
но это не на уровне DB, а на уровне отчета),
в Эксель идет все неокругленное.
по умолчанию Эксель показывает с двумя знаками, т.е. сам округляет,
и на вид отчет из ВО и тот, что в Экселе, совпадают.
а зато если на ячейку встать, там в формуле видно неокругленное.
зато все средние значения и т.д. сходятся.
27 июл 11, 17:16    [11035586]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
BestiA
Member

Откуда: Саратов
Сообщений: 44
Если изначально речь о деньгах, то зачем у изначальных цифр такая высокая точность ? У MS-SQL вроде есть тип данных, предназначенный для операций с деньгами. А работать с неокруглёнными значениями - гиблое дело. Итоги в любом случае будут отличаться т.к. суммировать можно по разному. Если суммировать неокруглённые значения, сумма частенько будет отличаться от суммы округлённых значений.
27 июл 11, 23:33    [11036906]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
BestiA
Если изначально речь о деньгах, то зачем у изначальных цифр такая высокая точность ? У MS-SQL вроде есть тип данных, предназначенный для операций с деньгами. А работать с неокруглёнными значениями - гиблое дело. Итоги в любом случае будут отличаться т.к. суммировать можно по разному. Если суммировать неокруглённые значения, сумма частенько будет отличаться от суммы округлённых значений.
Вот так в банках программеры и тырили раньше сотые доли центов себе на счет :)
28 июл 11, 03:31    [11037361]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с округлением  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
"Баковское" округление на T-SQL (как Math.Round в .NET)
28 июл 11, 11:49    [11038607]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить