我们在编程的过程中,特别是开发和财务相关的应用程序的时候,几乎都会遇到要将阿拉伯数字(一般是货币金额)转换为中文大写的要求。也有一些转换程序,但大都不符合财务实际要求,比如最简单的:
function xd(xx:currency):string;
var
dx,ws:string;
i,cd:integer;
int:currency;
begin
int:=trunc((abs(xx)+0.005)*100);
{在“厘”上4舍5入后去掉小数点}
cd:=length(currtostr(int));
{取得数字的长度,跟据此长度即可判断位数}
dx:='零壹贰叁肆伍陆柒捌玖';
ws:='分角元拾佰仟万拾佰仟亿拾佰仟';
{位数}
result:= ' ';
i:=1;
while i<=cd do
begin
result:=result+copy(dx,strtoint(copy(currtostr
(int),i,1))*2+1,2);
{取数字的大写}
result:=result+copy(ws,(cd-i)*2+1,2);
{加上数字的位数}
i:=i+1;
end
end
在这里输入xd(1234567.89),返回“壹佰贰拾叁万肆仟伍佰陆拾柒元捌角玖分”,但它并不完美,例如xd(100),返回的却是:壹佰零拾零元零角零分(应是壹佰元整),显然这不符合财务工作的实际要求。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器