Я пытаюсь рассчитать проценты от суммы в долларах. На 50%, иногда вы получаете половину копейки, и мне нужно округлить ее до ближайшего цента.Почему TSQL на Sql Server 2000 округляет десятичные числа непоследовательно?
В Sql, мой расчет заключается в следующем:
round(retail * 0.5, 2, 0)
Если я принимать следующие значения я получаю разные результаты:
- 4,39
- 2,49
Неограниченный Я получаю:
- 4,39 -> 2,195
- 2,49 -> 1,245
Когда округляется я получаю:
- 2,195 -> 2,19
- 1,245 -> 1,25
Мне сказали, что это форма «округления банкира», но, похоже, ke значение, влияющее на направление округления, представляет собой целочисленное значение.
Моя проблема в том, что я ожидаю, что верхнее значение округляется до 2,20. Если это действительно округление банкиров, и на это влияет целочисленное значение, есть ли у кого-нибудь пример для предотвращения такого поведения. Если это не округление банкиров, может кто-то, пожалуйста, дать объяснение и, возможно, решение просто получить нормальное поведение округления?
Заранее благодарен!
хорошо, я попытался это в SQL Server 2008 и I получить 2.200; не может помочь вам с sql 2000, хотя вы пробовали это: select round (4.39 * 0.5.2.0) => my result = 2.2. – Pleun