Delphi中实现金额小写转化成大写
2005-02-16 14:17
537 查看
function NumToChar(const n: Real): string; //可以到万亿,并且可以随便扩大范围
const cnum: array[0..9] of string = ('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
cunit: array[0..14] of string = ('万','仟','佰','拾','亿','仟','佰','拾','万','仟','佰','拾','元','角','分');
var
i : Integer;
snum,stemp : string;
begin
result :='';
snum := format('%15d',[round(n * 100)]);
for i := 0 to 14 do
begin
stemp := copy(snum,i+1,1);
if stemp=' ' then continue
else result := result + cnum[strtoint(stemp)] + cunit[i];
end;
//去掉多余的零
Result := StringReplace(Result, '零元','元', [rfReplaceAll]);
Result := StringReplace(Result, '零拾', '零', [rfReplaceAll]);
Result := StringReplace(Result, '零佰', '零', [rfReplaceAll]);
Result := StringReplace(Result, '零仟', '零', [rfReplaceAll]);
Result := StringReplace(Result, '零万', '万', [rfReplaceAll]);
Result := StringReplace(Result, '零亿', '亿', [rfReplaceAll]);
Result := StringReplace(Result, '亿万', '亿', [rfReplaceAll]);
Result := StringReplace(Result, '零零零','零', [rfReplaceAll]);
Result := StringReplace(Result, '零零', '零', [rfReplaceAll]);
Result := StringReplace(Result, '零万', '万', [rfReplaceAll]);
Result := StringReplace(Result, '零亿', '亿', [rfReplaceAll]);
Result := StringReplace(Result, '亿万', '亿', [rfReplaceAll]);
Result := StringReplace(Result, '零元', '元', [rfReplaceAll]);
if pos('零分',result)=0 then Result := StringReplace(Result,'零角','零', [rfReplaceAll])
else Result := StringReplace(Result,'零角','整', [rfReplaceAll]);
Result := StringReplace(Result,'零分','', [rfReplaceAll]);
end;
const cnum: array[0..9] of string = ('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
cunit: array[0..14] of string = ('万','仟','佰','拾','亿','仟','佰','拾','万','仟','佰','拾','元','角','分');
var
i : Integer;
snum,stemp : string;
begin
result :='';
snum := format('%15d',[round(n * 100)]);
for i := 0 to 14 do
begin
stemp := copy(snum,i+1,1);
if stemp=' ' then continue
else result := result + cnum[strtoint(stemp)] + cunit[i];
end;
//去掉多余的零
Result := StringReplace(Result, '零元','元', [rfReplaceAll]);
Result := StringReplace(Result, '零拾', '零', [rfReplaceAll]);
Result := StringReplace(Result, '零佰', '零', [rfReplaceAll]);
Result := StringReplace(Result, '零仟', '零', [rfReplaceAll]);
Result := StringReplace(Result, '零万', '万', [rfReplaceAll]);
Result := StringReplace(Result, '零亿', '亿', [rfReplaceAll]);
Result := StringReplace(Result, '亿万', '亿', [rfReplaceAll]);
Result := StringReplace(Result, '零零零','零', [rfReplaceAll]);
Result := StringReplace(Result, '零零', '零', [rfReplaceAll]);
Result := StringReplace(Result, '零万', '万', [rfReplaceAll]);
Result := StringReplace(Result, '零亿', '亿', [rfReplaceAll]);
Result := StringReplace(Result, '亿万', '亿', [rfReplaceAll]);
Result := StringReplace(Result, '零元', '元', [rfReplaceAll]);
if pos('零分',result)=0 then Result := StringReplace(Result,'零角','零', [rfReplaceAll])
else Result := StringReplace(Result,'零角','整', [rfReplaceAll]);
Result := StringReplace(Result,'零分','', [rfReplaceAll]);
end;
相关文章推荐
- 将金额小写转化成汉字大写(javascript)
- c#实现小写金额转换成大写金额
- 将金额小写转化成汉字大写
- C#实现阿拉伯数字(小写金额)到大写中文(大写金额)的转换
- 将小写金额转化为大写
- [转]C#实现人民币金额小写转大写的代码
- C#实现将商品金额小写转换成大写的方法
- 小写金额转化为大写
- MSSql 自定义函数实现小写金额转换成大写(最高13位不包括小数点后两位)
- 人民币小写金额转化成大写金额
- js实现金额的大写转小写
- Delphi中将小写数字金额转成大写金额
- 用PHP实现小写金额转换大写金额的代码(精确到分)
- C语言实验:输入一个整数的小写金额值,转化为大写金额值并输出
- C语言实验——输入一个整数的小写金额值,转化为大写金额值并输出
- Delphi 将商品金额小写转大写
- C#实现小写金额转换大写的方法
- java实现整数转化为中文大写金额的方法
- 用C#实现将大写日期(年/月/日)转化为小写日期(阿拉伯数字的)
- 用PHP实现小写金额转换大写金额的代码(精确到分)