财务软件中总少不了大写的金额表示方式如下为一个简单的小写金额转换为大写的函数其思路简单(可以说烂吧居然利用了位置来转换)但是它却几乎可以无限制的转换只要你能读得出来和写得进去
function TformSmallTOBig(small:real):string;
var SmallMonthBigMonth:string;
weiqianwei:string[];
weiqianweidianweizhiqian:integer;
begin
{ 修改参数令值更精确 }
{小数点后的位数需要的话也可以改动该值}
qianwei:=; {转换成货币形式需要的话小数点后加多几个零}
Smallmonth:=formatfloat(small);
{}
dianweizhi :=pos(Smallmonth);{小数点的位置}
{循环小写货币的每一位从小写的右边位置到左边}
for qian:=length(Smallmonth) downto do
begin
{如果读到的不是小数点就继续}
if qian<>dianweizhi then
begin
{位置上的数转换成大写}
case strtoint(copy(Smallmonthqian)) of
:wei:=壹; :wei:=贰;
:wei:=三; :wei:=肆;
:wei:=伍; :wei:=陆;
:wei:=柒; :wei:=捌;
:wei:=玖; :wei:=零;
end;
{判断大写位置可以继续增大到real类型的最大值可是谁有那么多钱}
case qianwei of
:qianwei:=厘;
:qianwei:=分;
:qianwei:=角;
:qianwei:=元;
:qianwei:=拾;
:qianwei:=佰;
:qianwei:=千;
:qianwei:=万;
:qianwei:=拾;
:qianwei:=佰;
:qianwei:=千;
:qianwei:=亿;
:qianwei:=十;
:qianwei:=佰;
:qianwei:=千;
end;
inc(qianwei);
BigMonth :=wei+qianwei+BigMonth;{组合成大写金额}
end;
end;
SmallTOBig:=BigMonth;
end;
程序调用如下edittext:=SmallTOBig();他自动默认小数点后两位