Я пытаюсь сделать раунд в sql, но результат очень странный; Вот что я делаю:sql округление не всегда округляет
Я использую MSSQL
У меня есть выбор:
Select num1, num2, num1 * num2, round(num1 * num2, 2)
from myTable
Datatype:
num1 поплавковый
num2 является деньги
если значение num1 составляет 15 и значение num2 является 0,033 Вот мой ResultSet:
15, 0,033, 0,495, 0,5
Проблема заключается в том, когда у меня есть эти значения :
если значение num1 5 и значение num2 является 0,045 Вот мой ResultSet:
5, 0.045, 0.225, 0.22
У кого-то есть идея?
Вы абсолютно уверены, что должны использовать тип данных MONEY? Есть довольно убедительная запись о том, почему этого следует избегать, если это вообще возможно, в пользу десятичного числа здесь: http://sqlserverpedia.com/blog/sql-server-bloggers/throw-your-money-away/ – David
I ' Я попробовал это в своем sqlect: round (convert (decimal (10, 3), num2) * num1, 2) и он не работает :( – GregM
Интересно ... это работает для меня ... попробуйте это: выберите round (CONVERT (десятичный (10,3), 0,045) * 5, 2). Только что: «select round (5 * 0.045, 2)» также дает правильный результат для меня. – David