敬业的IT人 >> 编程开发 >> PowerBuilder >> 在PB中实现数字的英文大写和中文大写

在PB中实现数字的英文大写和中文大写

敬业的IT人 互联网 佚名 2008-1-4 12:25:56

  P>PowerBuilder是当前得到广泛应用的C/S数据库前端开发工具, 在使用PB的过程中,经常遇到要将数字进行英文或中文的大写转换,尤其是在处理金额的时候,本文整理了我在实践中用到的转换方法,提供给大家参考。

  一、 英文大写转换

  以下是进行英文大写转换的函数内容,函数名为dtoe:

//****** 阿拉伯数--- $#@62;英文数 ******string aa,bb,T1,T2,T3,B,W,CC,a1decimal a=0,c=0,a2INTEGER V,Maa="if w$#@60; $#@62;" " and m=9 then b=b+"AND "  end if w=b+w  end if end if m=m - 3LOOP//*** 小数处理 ***if w=" " then w="ZERO " end ifif t2$#@60; $#@62;" " AND T2$#@60; $#@62;"00" then w=trim(w)+" & "+t2+"/100" end if//*** 结果 --- $#@62; wreturn w

  二、中文大写转换

  以下是进行中文大写转换的函数内容,函数名为dtormb:

decimal ystring je,x,hz1,hz2,e,h,f,mint b,ay=mjeX    rim(string(Y))B = len(X)-3A = 1E = mid(X,A,1)HZ2 = 零壹贰叁肆伍陆柒捌玖HZ1 = 仟佰拾亿仟佰拾万仟佰拾元JE =  do while E$#@60; $#@62;. H = mid(HZ2,integer(E)*2+1,2) F = mid(HZ1,24 - (B - A)*2 - 1,2) if E$#@60; $#@62;0 or (E=0 and (F=亿 or F=万 or F=元)) then JE = trim(JE)+H+F else  JE = trim(JE)+H end if  A = A+1 E = mid(X,A,1)loop A = A+1E = mid(X,A,1)H = mid(X,A+1,1)if E=0 and H=0 then JE = JE+整else  if E=0 then JE = JE+零+mid(HZ2,integer(H)*2+1,2)+分 else  if H=0 then JE = JE+mid(HZ2,integer(E)*2+1,2)+角整 else  JE = JE+mid(HZ2,integer(E)*2+1,2) +角+mid(HZ2,integer(H)*2+1,2)+分 end if  end if end if B = len(JE)A = 1do while A$#@60; B M = mid(JE,A,4) if M=零元 or M=零万 or M=零亿 or M=零零 then JE = mid(JE,1,A - 1)+trim(mid(JE,A+2,40)) A = A - 2 B = B - 2 end if  A = A+2loop return JE
进入讨论组讨论。
粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com