阿拉伯數字金額轉換為中文大寫

2021-04-20 05:04:28 字數 2778 閱讀 2358

set ansi_nulls on

goset quoted_identifier on

gocreate    procedure [dbo].[moneytochinese]   --阿拉伯數字金額轉換為中文大寫

@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 = '整'

endselect @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

C 阿拉伯數字轉換為中文大寫

class convertnumber private static string wstr private static string lcstr endregion 轉換方法 輸入引數為阿拉伯數字 返回字串為中文大寫 public static string convertint string ...

阿拉伯數字大寫轉換

public class genchinese private final static string str shu ji 大數量級 private final static string str shu ji 2 千內數量級 public genchinese param intnumber 需...

VB阿拉伯數字金額轉大寫中文

function mychange byval myinput dim temp,tempa,myinputa,myinputb,myinputc dim place as string dim j as integer place 分角元拾佰仟萬拾佰仟億拾佰仟萬 shuzi1 壹貳叄肆伍陸柒捌玖 ...