您的位置:首页 > 其它

最精简的小写金额转大写的函数

2008-10-13 13:27 309 查看
function Changdx2(mmje: Double): string;

const s1: string = '零壹贰叁肆伍陆柒捌玖';

s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟万';

function StrTran(const S, S1, S2: string): string;

begin

Result := StringReplace(S, 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 := Length(s);

for i := 1 to Len do

dx := dx + Copy(s1, (Ord(s[i]) - Ord('0')) * 2 + 1, 2) + Copy(s2, (Len - i) * 2 + 1, 2);

dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰', '零'), '零拾', '零'), '零角', '零'), '零分', '整');

dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零', '零'), '零零', '零'), '零亿', '亿'), '零万', '万'), '零元', '元');

if dx = '整' then Result := '零元整'

else Result := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: