在线转换:http://tool.apizl.com/tools/numberTurn.html
在Delphi XE8下不能正常转换。
Function MoneyConvert(mmje:real): string;
const
s1: string = '零壹贰叁肆伍陆柒捌玖';
s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟万';
Function StrTran(const S, s1, s2: string): string;
begin
Result := S.Replace(s1, s2, [rfReplaceAll]);
end;
var
S, dx: string;
i, Len: Integer;
begin
if mmje < 0 then
begin
dx := '负';
mmje := -mmje;
end;
S := Format('%.0f', [mmje * 100]);
Len := s.Length;
for i := 0 to Len-1 do
dx := dx + s1.Substring(Ord(s.Chars[i]) - Ord('0') , 1) +s2.substring(Len-i-1,1);
dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰','零'),'零拾', '零'), '零角', '零'), '零分', '整');
dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零', '零'), '零零','零'),'零亿', '亿'), '零万', '万'), '零元', '元');
if dx = '整' then
Result := '零元整'
else
Result := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');
//如果不按金额转换,只转成大写数字,把下面的注释去掉
// result:=StrTran(Result,'元','点');
// result:=StrTran(Result,'角','');
// result:=StrTran(Result,'分','');
// result:=StrTran(Result,'点整','');
end;