來自:
create procedure moneytochinese22 --阿拉伯數字金額轉換為中文大寫
@changemoney money ,@returndaxie varchar(50) output
asset nocount on
declare @string1 char(20)
declare @string2 char(30)
declare @string4 varchar(100)
declare @string3 varchar(100) --從原a值中取出的值
declare @i bigint --迴圈變數
declare @j bigint --a的值乘以100的字串長度
declare @ch1 varchar(100) --數字的漢語讀法
declare @ch2 varchar(100) --數字位的漢字讀法
declare @zero bigint --用來計算連續有幾個零
declare @returnvalue varchar(100)
select @returnvalue = ''
select @string1 = '零壹貳叄肆伍陸柒捌玖'
select @string2 = '萬仟佰拾億仟佰拾萬仟佰拾元角分'
select @string4 = cast(@changemoney*100 as bigint)
select @j=len(cast((@changemoney*100) as bigint))
select @string2=right(@string2,@j)
select @i = 1
while @i<= @j begin
select @string3 = substring(@string4,@i,1)
if @string3<>'0' begin
select @ch1 = substring(@string1, cast(@string3 as bigint) + 1, 1)
select @ch2 = substring(@string2, @i, 1)
select @zero = 0 --表示本位不為零
endelse begin
if (@zero = 0) or (@i = @j - 9) or (@i = @j - 5) or (@i = @j - 1)
select @ch1 = '零'
else
select @ch1 = ''
select @zero = @zero + 1 --表示本位為0
--如果轉換的數值需要擴大,那麼需改動以下表示式 i 的值。
if @i = @j - 10 begin
select @ch2 = '億'
select @zero = 0
endif @i = @j - 6 begin
select @ch2 = '萬'
select @zero = 0
endif @i = @j - 2 begin
select @ch2 = '元'
select @zero = 0
endif @i = @j
select @ch2 = '整'
end
select @returnvalue = @returnvalue + @ch1 + @ch2
select @i = @i+1
end--最後將多餘的零去掉
if charindex('仟仟',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '仟仟', '仟')
if charindex('佰佰',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '佰佰', '佰')
if charindex('零元',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '零元', '元')
if charindex('零萬',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '零萬', '萬')
if charindex('零億',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '零億', '億')
if charindex('零整',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '零整', '整')
if charindex('零佰',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '零佰', '零')
if charindex('零仟',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '零仟', '零')
if charindex('元元',@returnvalue) <> 0
select @returnvalue = replace(@returnvalue, '元元', '元')
select @returndaxie=@returnvalue
go
金額大小寫轉換!
把數字轉換成中文大寫金額,分以下小數截位 param dblmoney double 數字 param blnfull boolean false,2001.30 貳仟零壹元叄角整 true,2001.30 貳仟零佰零拾壹元叄角零分 param bzheng boolean 是否強制末尾加整字 如果...
C winfrom設定金額數字大小寫轉換
張 suger 開發工具與關鍵技術 visual studio 2015 c net winfrom 很多時候我們比如金額就需要對數字的小寫轉換成大寫模式,因此我查詢了歸納了如下方法,希望能幫到小夥伴。實現截圖 實現 region 數字小寫轉大寫 public static string cnumt...
人民幣金額大小寫轉換
大家在編寫涉及到金額的程式的時候,有時候需要將小寫的人民幣金額轉換成大寫表示 下面的 介紹了轉換的實現過程,大家可以參考一下 pragma warning disable 4786 include include include include using std vector using std ...