以上两位对 10000001.01 这样的数处理不好
'负壹佰零拾零万零千贰佰零拾壹元零角贰分'
ChnNum: array[0..9] of string =
('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
NumBit: array[1..15] of string =
('分','角','元','拾','佰','仟','万','拾','佰','仟',
'亿','拾','佰','仟','万');
function packcurrstring(astr:string):string;
var tmps:widestring;i:integer;
begin
tmps:=astr;
i:=1;
while i<length(tmps)do
begin
if tmps='零' then
begin
while pos(tmps[i+1],'零角拾佰仟')>0do
delete(tmps,i+1,1);
if pos(tmps[i+1],'元万亿')>0 then
begin
if i=1 then
begin
delete(tmps,i,2);
i:=0;
end else
delete(tmps,i,1);
end else
if tmps[i+1]='分' then
delete(tmps,i,2);
end;
inc(i);
end;
result:=tmps;
end;
function chncurrstring(astr:string):string;
var tmps:string;i,n,m:integer;
begin
n:=length(astr);
m:=n;
if astr[1]='-' then
dec(m);
tmps:='';
for i:=1 to mdo
tmps:=chnnum[ord(astr[n-i+1])-ord('0')]+numbit+tmps;
if m<>n then
tmps:='负'+tmps;
result:=tmps;
end;
function aa(Jine: Extended): string;
begin
Result := FormatFloat('0.00', Jine);
Delete(Result, Pos('.', Result), 1);
Result := ChnCurrString(Result);
Result := PackCurrString(Result);
if (Copy(Result, Length(Result) - 1, 2) <> '分')
and (Length(Result) > 1) then
Result := Result + '整';
end;