2010-01-22 4 views

ответ

0

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

веселит

0

Попробуйте

select cast(ROUND(2/3.0, 2) as decimal(2,2)) 
0
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
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 
  • Зачем отправлять целое число в?
  • раунд бессмыслен с возвратным типом поплавка. Вы можете получить 0,6700000000001, например
  • Если вы хотите исправить десятичные знаки, используйте десятичную (p, 2). Но тогда ваш КРУГЛЫЙ бесполезен.

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

Смежные вопросы