function NumToChar(n:Real): wideString; //可以到万亿,并可随便扩大
const
cNum:WideString='零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分';
cCha:array[0..1, 0..11]of string =
(( '零仟','零佰','零拾','零零零','零零','零亿','零万','零元','亿万','零角','零分','零整'),
( '零','零','零','零','零','亿','万','元','亿','零','整','整'));
var
i :Integer;
sNum :WideString;
begin
result :='';
sNum := FormatFloat('0',n*100);
for i := 1 to Length(sNum) do
result := result + cNum[ord(sNum[i])-47] + cNum[26-Length(sNum)+i];
for i:= 0 to 11 do //去掉多余的零
result := StringReplace(result, cCha[0,i], cCha[1,i], [rfReplaceAll]);
end;