Округлить до 5 центов - PullRequest
       78

Округлить до 5 центов

0 голосов
/ 29 января 2020

У меня есть следующий запрос.

ALTER FUNCTION [dbo].[Test] (@i DECIMAL(10, 2))
RETURNS DECIMAL(10, 2)
AS
BEGIN
    DECLARE @j DECIMAL(10, 2)

    SET @j = @i - floor(@i)

    RETURN CASE 
            WHEN @j < 0.25
                THEN floor(@i)
            WHEN @j < 0.75
                THEN floor(@i) + 0.5
            ELSE ceiling(@i)
            END
END

return case when @j<0.25 then floor(@i) when @j<0.75 then floor(@i)+0.5 else ceiling(@i) end

END

Это для раунда с 0,5, но как я могу изменить это, чтобы всегда округлять с 0,05, если это уже не в раунде 0,05?

1 Ответ

0 голосов
/ 29 января 2020

Вы можете использовать функцию ceiling():

ceiling(@i / 0.05) * 0.05

Это кажется намного проще, чем то, что вы пытаетесь сделать.

...