Как получить два десятичных знака от деления в SQL Server? - PullRequest
0 голосов
/ 22 января 2010

Использование:

SELECT 2/3

Как получить результат 0.67 с использованием SQL Server 2005?

Ответы [ 5 ]

1 голос
/ 22 января 2010

Используйте этот запрос:

SELECT ROUND(2.0/3.0, 2)
0 голосов
/ 22 января 2010
SELECT 2.0/3.0 AS RawResult

Формат в клиенте

Комментарии к функции в вашем ответе ...

ALTER FUNCTION GetDecimalFromDivided (@float1 float, @float2 float, @round INT) 
RETURNS float AS
Begin
RETURN ROUND (@float/@float2, @round)
END
  • Зачем отправлять целое число в? ​​
  • round не имеет смысла с типом возврата float. Вы можете получить 0,6700000000001, например
  • Если вы хотите исправить десятичные разряды, используйте десятичную (p, 2). Но тогда твой КРУГ бесполезен.

Вы действительно должны форматировать в клиенте!

0 голосов
/ 22 января 2010
ALTER FUNCTION GetDecimalFromDivided(@interger1 INT, @interger2 INT , @round INT) 
RETURNS FLOAT AS
Begin
RETURN  ROUND(@interger1/cast(cast(@interger2 AS VARCHAR) + '.0' AS FLOAT),@round)
END
0 голосов
/ 22 января 2010

Попробуйте это

select cast(ROUND(2/3.0, 2) as decimal(2,2))
0 голосов
/ 22 января 2010

Select cast(2.0/3.0 as decimal(3,2)) as result, должно помочь.

ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...