日期:2014-05-17 浏览次数:20601 次
IF OBJECT_ID('fn_test') IS NOT NULL DROP FUNCTION dbo.fn_test
go
CREATE FUNCTION fn_test (@s VARCHAR(100) , @i INT)
RETURNS FLOAT
AS
BEGIN
DECLARE @f FLOAT
SET @f = CAST(@s AS FLOAT)
DECLARE @d INT
SET @d = 0
DECLARE @n INT
IF @f > 0
SET @n = 1
ELSE
SET @n = -1
SET @f = ABS(@f)
WHILE @f > 1
BEGIN
SET @d = @d + 1
SET @f = @f / 10
END
WHILE @f < 0.1
BEGIN
SET @d = @d - 1
SET @f = @f * 10
SET @i = @i - 1
END
RETURN @n*ROUND(@f,@i)*POWER(CAST(10 AS FLOAT),@d)
END
GO