格式化數字爲指定位數

-- =============================================
-- Create date: 2019-1-24
-- Description:    格式化數字爲指定位數(如果有小數則四捨五入,例如當@Place=2, 則555.5560444=555.56, 555=555.00)
-- =============================================
CREATE FUNCTION [dbo].[F_FormatDecimalWithPattern] 
(
    @Number    VARCHAR(100), --數字
    @Place        INT, --轉化的位數
    @DefaultPattern    NVARCHAR(100) --如果無法轉換爲數字,則返回默認的字符串
)
RETURNS VARCHAR(100)
AS
BEGIN

    IF ISNUMERIC(@Number) = 0
        RETURN @DefaultPattern
    
    DECLARE    @Value DECIMAL(18,8),
                @ReturnValue VARCHAR(100)
    
    SET @Value = CONVERT(DECIMAL(18,8), @Number)
    
    SET @ReturnValue = ROUND(@Value, @Place)
    SET @ReturnValue = CONVERT(VARCHAR(100), @ReturnValue)

    SET @ReturnValue = LEFT(@ReturnValue, LEN(@ReturnValue) - 8 + @Place)

    RETURN @ReturnValue
END

GO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章