亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

MSSQL 數字錢轉化為大寫

系統 1958 0
      --說明:

--1.本函數范圍從 毫 ~ 兆

--2.有四種精度(元,角 ,分,厘 ,毫)

--3.有三種進位規則(四舍五入,接舍去,非0就入)

--參數說明:dbo.MoneyToCapital( 數值 , 進位 , 精度)

--進位 (0 四舍五入, 1 直接舍去,2 非0就入)

--精確度 (0 元,1 角 ,2 分,3 厘 ,4 毫)

--------------------------------------------------------------------------------------------------------

--測試數據:

DECLARE @intNum decimal(38,4)

SET @intNum = 1123456780.2154

--SET @intNum = 1001

--SET @intNum = 100100

--SET @intNum = 1005001

--SET @intNum = 100.11

--SET @intNum = 100.00

--SET @intNum = 100.01

SET @intNum = 99999999999999.9999 -- 最大 <1百兆(精確到毫)

--SET @intNum = 10025.1234

--SET @intNum = 12345.6789

SELECT dbo.MoneyToCapital(@intNum,0,4)

--------------------------------------------------------------------------------------------------------

Go

CREATE FUNCTION MoneyToCapital

(

@mnyNumber decimal(38,4),

@intIsRound int = 0, -- 進位 (0 四舍五入, 1 直接舍去,2 非0就入)

@intPrecision int = 2 -- 精確度: 0 元,1 角 ,2 分,3 厘 ,4 毫

)

RETURNS nvarchar(50)

BEGIN

DECLARE @strReturn nvarchar(50)

DECLARE @strMoney varchar(50)

DECLARE @intLen int

DECLARE @strC1 char(1)

DECLARE @strC2 char(1)

DECLARE @strC3 char(1)

DECLARE @intJ int

DECLARE @necMoney decimal(38,4)

DECLARE @strMoneyUnit nvarchar(50)

DECLARE @strNumberCapital nvarchar(50)

SET @strMoneyUnit = '毫厘分角元拾佰仟萬拾佰仟億拾佰仟兆拾佰仟京拾佰仟'

SET @strNumberCapital = '零壹貳叁肆伍陸柒捌玖'

--0 的情況

IF @mnyNumber = 0 BEGIN

   SET @strReturn = '零元整'

   RETURN @strReturn

END

--超出范圍 的情況

IF @mnyNumber < 0 OR @mnyNumber > 99999999999999.9999 BEGIN

  

   RETURN CAST(@mnyNumber AS varchar(50))

END

------進位 超出范圍

IF @intIsRound<0 OR @intIsRound>2 BEGIN

   SET @intIsRound = 0

END

------精確度 超出范圍

IF @intPrecision<0 OR @intPrecision>4 BEGIN

   SET @intPrecision = 2

END

IF @intIsRound =1 BEGIN--直接舍去



   SET @mnyNumber = ROUND(@mnyNumber,2,1)

END

ELSE IF @intIsRound = 2 BEGIN--非0就入



   SET @mnyNumber = ROUND(@mnyNumber,2)

END

ELSE BEGIN--四舍五入



   SET @mnyNumber = ROUND(@mnyNumber,@intPrecision)

END



SET @necMoney = @mnyNumber * POWER(10,@intPrecision)   --精確度 @intPrecision

SET @strMoney = CAST(CAST(@necMoney AS bigint) AS varchar(50))

SET @intLen = LEN(@strMoney) --長度

SET @strMoney = REVERSE(@strMoney) --逆轉

SET @strReturn=''



SET @intJ = 1     -- @intPrecision 精確度: 0 元,1 角 ,2 分,3 厘 ,4 毫( 1 開始對應 毫)

WHILE @intJ <= @intLen BEGIN



   SET @strC1 = SUBSTRING(@strMoney,@intJ-1,1)

   SET @strC2 = SUBSTRING(@strMoney,@intJ,1)

   SET @strC3 = SUBSTRING(@strMoney,@intJ+1,1)



   SET @strReturn = SUBSTRING(@strNumberCapital , CAST(@strC2 AS int)+1 , 1) +SUBSTRING(@strMoneyUnit , @intJ+4-@intPrecision , 1) + @strReturn

   SET @intJ = @intJ + 1

END



 --替換多余的部分

set @returnStr = replace(@returnStr,'零億','零')

set @returnStr = replace(@returnStr,'零千','零')

set @returnStr = replace(@returnStr,'零百','零')

set @returnStr = replace(@returnStr,'零拾','零')

set @returnStr = replace(@returnStr,'零零零','零')

set @returnStr = replace(@returnStr,'零零','零')

set @returnStr = replace(@returnStr,'零萬','萬')

set @returnStr = replace(@returnStr,'零元','元')

set @returnStr = replace(@returnStr,'零角','零')

set @returnStr = replace(@returnStr,'零分','')



while left(@returnStr,1) = '零'

Begin

  set @returnStr = right(@returnStr,len(@returnStr)-1)

end

if ((left(@returnStr,1)='萬')) 

begin

  set @returnStr = right(@returnStr,len(@returnStr)-1)

end

if ((left(@returnStr,1)='元')) 

begin

  set @returnStr = right(@returnStr,len(@returnStr)-1)

end

while left(@returnStr,1) = '零'

Begin

  set @returnStr = right(@returnStr,len(@returnStr)-1)

end

while right(@returnStr,1) = '零'

Begin

  set @returnStr = left(@returnStr,len(@returnStr)-1)

end



set @returnStr = replace(@returnStr,'億萬','億零')

set @returnStr = replace(@returnStr,'零元','元')

set @returnStr = replace(@returnStr,'零零零','零')

set @returnStr = replace(@returnStr,'零零','零')



if (@returnStr='') 

begin

  set @returnStr = '零元'

end

if ((right(@returnStr,1)='元')) 

begin

     set @returnStr = @returnStr + '整'

end



RETURN @strReturn

END



--String1 = "零壹貳叁肆伍陸柒捌玖"

--String2 = "萬仟佰拾億仟佰拾萬仟佰拾元角分厘毫"

  


    

MSSQL 數字錢轉化為大寫


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品国产综合区久久久久久 | 欧美片欧美日韩国产综合片 | 黑人特级粗α级毛片 | 国产成人综合亚洲欧洲色就色 | 国产精品你懂的在线播放 | 一区免费在线观看 | 亚洲欧美中文字幕高清在线一 | 外国成人网在线观看免费视频 | 在线精品国精品国产不卡 | 久久综合九色欧美综合狠狠 | 久久午夜一区二区 | 一级毛片秋霞特色大片 | 日日摸狠狠的摸夜夜摸 | 国产第8页| 欧美成人激情视频 | 99久久国产综合精品五月天 | 久久久国产精品免费看 | 最新国产一区二区精品久久 | 女人18毛片a级毛片免费 | 国产福利免费在线观看 | 久操视频免费看 | 日日碰碰 | 亚洲狠狠网站色噜噜 | 天天狠天天天天透在线 | 婷婷操| 草草在线观看 | 久久香蕉国产线看观看精品yw | 欧洲成人在线观看 | 精品国产一区二区三区www | 成人在色线视频在线观看免费大全 | 毛片免费看| 亚洲高清视频在线 | 久久99精品久久久久久黑人 | 99久久精品自在自看国产 | 成人乱色短篇合集 | 亚洲欧美日韩精品中文乱码 | 毛片免费毛片一级jjj毛片 | 91久久精品一区二区三区 | 97在线视频免费观看费观看 | 台湾亚洲精品一区二区tv | 色一情一乱一伦麻豆 |