[转帖]人民币金额大小写转换函数 |
Function NtoC( n0 :Extended) :wideString; //人民币金额大小写转换函数(如发现更为精简的,请告诉我) //作者:方小庆(上海) inrm@263.net Function IIF(b :boolean; s1,s2 :string):string; begin {本函数在VFP和VB里均为内部函数} if b then IIF:=s1 else IIF:=s2; end; Const c:WideString = '零壹贰叁肆伍陆柒捌玖◇分角元拾佰仟万拾佰仟亿拾佰仟万'; var L,i,n :integer; Z,a :boolean; s, st :WideString; begin s:= FormatFloat('0',n0*100); L:= Length(s); Z:= false; For i:=1 to L do begin n:= ord( s[L-i+1])-48;// StrToInt( s[L-i+1]); a:= (i=11)or(i=7)or(i=3)or(i=1); //亿、万、元、分位 st:=IIF((n=0)and(Z or a), '', c[n+1]) //数值 + IIF((n=0)and(i=1),'整', //分位为零 IIF((n>0)or a, c[i+11], '')) //单位 + IIF((n=0)and(not Z)and(i>1)and a,'零','') //亿、万、元位为零而千万、千、角位不为零 + st; Z:= n=0; end; For i:=1 To Length(st) do If Copy(st,i,2)='亿万' Then Delete(st,i+1,1); //亿位和万位之间都是零时会出现’亿万’ result:= IIF(n0>9999999999999.99, '溢出', IIf(n0 = 0, '零', st)); End; |
人民币金额大小写转换函数
最新推荐文章于 2020-07-14 22:25:09 发布