-- =============================================
-- 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