Я использую SQL Server 2014 и прочитал эту страницу MSDN для функции ROUND: КРУГЛЫЙ (Transact-SQL)

Когда я запускаю этот пример со страницы выше, результат my не совпадает с результатом MSDN:

MSDN :

SELECT ROUND(123.4545, 2)  -->  123.45 

Мой результат:

 SELECT ROUND(123.4545, 2)  -->  123.4500

В моем результате есть два лишних нуля. В чем проблема? Я хочу получить результат MSDN.

Благодарность

1
Arian 29 Июн 2016 в 11:13
Посмотрите на пример B, и вы увидите именно тот результат, который видите. Я бы не стал смотреть на пример E (или D), если вы не используете «Общедоступную предварительную версию хранилища данных Azure SQL и хранилище параллельных данных», поскольку это раздел, в котором они находятся.
 – 
Damien_The_Unbeliever
29 Июн 2016 в 11:54

1 ответ

Лучший ответ

Вы указали 4 десятичных знака, чтобы получить результат с 4 десятичными знаками.

Попробуйте вот так,

SELECT convert(DECIMAL(8, 2), ROUND(123.4545, 2))
5
StackUser 29 Июн 2016 в 11:15
Спасибо, но почему результат MSDN имеет двухзначное десятичное число?
 – 
Arian
29 Июн 2016 в 11:21
3
Потому что даже MSDN не так совершенен :)
 – 
gofr1
29 Июн 2016 в 11:26