delphi经典大写数字转换函数

来源:互联网 发布:sql范围查询语句 编辑:程序博客网 时间:2024/05/21 09:04
  1. function MoneyConvert(mmje:real): string;  
  2. const  
  3.   s1: string = '零壹贰叁肆伍陆柒捌玖';  
  4.   s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟万';  
  5.   function StrTran(const S, s1, s2: string): string;  
  6.   begin  
  7.     Result := StringReplace(S, s1, s2, [rfReplaceAll]);  
  8.   end;  
  9. var  
  10.   S, dx: string;  
  11.   i, Len: Integer;  
  12. begin  
  13.   if mmje < 0 then  
  14.   begin  
  15.     dx := '负';  
  16.     mmje := -mmje;  
  17.   end;  
  18.   S := Format('%.0f', [mmje * 100]);  
  19.   Len := Length(S);  
  20.   for i := 1 to Len do  
  21.     dx := dx + Copy(s1, (Ord(S[i]) - Ord('0')) * 2 + 12) + Copy(s2, (Len - i)* 2 + 12);  
  22.   dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟''零'), '零佰','零'),'零拾''零'), '零角''零'), '零分''整');  
  23.   dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零''零'), '零零','零'),'零亿''亿'), '零万''万'), '零元''元');  
  24.   if dx = '整' then  
  25.     Result := '零元整'  
  26.   else  
  27.     Result := StrTran(StrTran(dx, '亿万''亿零'), '零整''整');  
  28. end;  

0 0
原创粉丝点击