Delphi 12种大小写转换的方法

function TPrintfrm.NumToChar(n: Real): wideString; //可以到万亿,并可随便扩大

const

cNum: WideString = '零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分';

cCha: array[0..1, 0..11] of string =

(('零仟','零佰','零拾','零零零','零零',

'零亿','零万','零元','亿万','零角','零分','零整'),

( '零','零','零','零','零','亿','万','元','亿','零','整','整'));

var

i: Integer;

sNum :WideString;

begin

Result := '';

//n := Round(n*10)/10;

//FormatFloat('0.0',)

sNum := FormatFloat('0',n*100);

// sNum := 'http://www.naquan.com/';

for i := 1 to Length(sNum) do

Result := Result + cNum[ord(sNum[i])-47] + cNum[26-Length(sNum)+i];

for i:= 0 to 11 do // 去掉多余的零

Result := StringReplace(result, cCha[0,i], cCha[1,i], [rfReplaceAll]);

end;


----------第二种方法----------

function TSnnofrm.LowToUpcase(xx: Real): string;

var

i: Integer;

j,dxhj: string;

zero: boolean;

begin

j := FormatFloat('0.0',xx);

j := Trim(IntToStr(Round(xx*100)));

if pos('.',j) <> 0 then

j := Copy(j,1,pos('.',j)-1);

if j = '' then

j:='0';

if copy(j,length(j),1) = '0' then

begin

dxhj := '整';

zero := True;

end

else

begin

dxhj := '';

zero := False;

end;

for i := 0 to Length(j)-1 do

begin

if StrToInt(Copy(j,Length(j)-i,1)) <> 0 then

case i of

0: dxhj := '分'+dxhj;

1: dxhj := '角'+dxhj;

2: dxhj := '元'+dxhj;

3: dxhj := '拾'+dxhj;

4: dxhj := '佰'+dxhj;

5: dxhj := '仟'+dxhj;

6: dxhj := '万'+dxhj;

7: dxhj := '拾'+dxhj;

8: dxhj := '佰'+dxhj;

9: dxhj := '仟'+dxhj;

10: dxhj := '亿'+dxhj;

11: dxhj := '拾'+dxhj;

end;

case StrToInt(Copy(j,Length(j)-i,1)) of

0:

begin

if not zero then

dxhj := '零'+dxhj;

zero := True;

end;

1:

begin

dxhj := '壹'+dxhj;

zero := False;

end;

2:

begin

dxhj := '贰'+dxhj;

zero := False;

end;

3:

begin

dxhj := '叁'+dxhj;

zero := False;

end;

4:

begin

dxhj := '肆'+dxhj;

zero := False;

end;

5:

begin

dxhj := '五'+dxhj;

zero := False;

end;

6:

begin

dxhj := '六'+dxhj;

zero := False;

end;

7:

begin

dxhj := '七'+dxhj;

zero := False;

end;

8:

begin

dxhj := '八'+dxhj;

zero := False;

end;

9:

begin

dxhj := '玖'+dxhj;

zero := False;

end;

end;

end;

if dxhj = '整' then

dxhj := '';

Result := dxhj;

end;


----------第三种方法----------

//数字转中文

function   NumberCn(mNumber:   Real):   WideString;

const

cPointCn:   WideString   =   '点十百千万十百千亿十百千';

cNumberCn:   WideString   =   '零一二三四五六七八九';

var

I,   L,   P:   Integer;

S:   string;

begin

Result   :=   '';

if   mNumber   =   0   then

begin

Result   :=   cNumberCn[1];

Exit;

end;

S   :=   FloatToStr(mNumber);

if   Pos('.',   S)   <=   0   then   S   :=   S   +   '.';

P   :=   Pos('.',   S);

L   :=   Length(S); 

for   I   :=   1   to   L   do

if   P   >   I   then

Result   :=   Result   +   cNumberCn[StrToInt(S[I])   +   1]   +   cPointCn[P   -   I]

else   if   P   =   I   then   begin

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]);

end   else   if   P   <   I   then

Result   :=   Result   +   cNumberCn[StrToInt(S[I])   +   1];

if   Result[Length(Result)]   =   cPointCn[1]   then

Result   :=   Copy(Result,   1,   Length(Result)   -   1);

if   Result[1]   =   cPointCn[1]   then   Result   :=   cNumberCn[1]   +   Result;

if   (Length(Result)   >   1)   and   (Result[2]   =   cPointCn[2])   and

(Result[1]   =   cNumberCn[2])   then

Delete(Result,   1,   1);

end;   {   NumberCn   }


//金额转中文大写

function   MoneyCn(mMoney:   Real):   WideString;

var

P:   Integer;

begin

if   mMoney   =   0   then   begin

Result   :=   '无';

Exit;

end;

Result   :=   NumberCn(Round(mMoney   *   100)   /   100);

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]);

P   :=   Pos('点',   Result);

if   P   >   0   then   begin

Insert('分',   Result,   P   +   3);

Insert('角',   Result,   P   +   2);

Result   :=   StringReplace(Result,   '点',   '圆',   [rfReplaceAll]);

Result   :=   StringReplace(Result,   '角分',   '角',   [rfReplaceAll]);

Result   :=   StringReplace(Result,   '零分',   '',   [rfReplaceAll]);

Result   :=   StringReplace(Result,   '零角',   '',   [rfReplaceAll]);

Result   :=   StringReplace(Result,   '分角',   '',   [rfReplaceAll]);

if   Copy(Result,   1,   2)   =   '零圆'   then

Result   :=   StringReplace(Result,   '零圆',   '',   [rfReplaceAll]);

end   else   Result   :=   Result   +   '圆整';

Result   :=   '人民币'   +   Result;

end;


----------第四种方法----------

给你个函数吧

function   Tjfdy.SmallTOBig(small:real):string;

var

SmallMonth,BigMonth:string;

wei1,qianwei1:string[2];

qianwei,dianweizhi,qian:integer;

begin

{-------   修改参数令值更精确   -------}

{小数点后的位数,需要的话也可以改动该值}

qianwei:=-2;

{转换成货币形式,需要的话小数点后加多几个零}

Smallmonth:=formatfloat('0.00',small);

{---------------------------------}

dianweizhi   :=pos('.',Smallmonth);{小数点的位置}

{循环小写货币的每一位,从小写的右边位置到左边}

for   qian:=length(Smallmonth)   downto   1   do

begin

{如果读到的不是小数点就继续}

if   qian<>dianweizhi   then

begin

{位置上的数转换成大写}

case   strtoint(copy(Smallmonth,qian,1))   of

1:wei1:='壹';   2:wei1:='贰';

3:wei1:='叁';   4:wei1:='肆';

5:wei1:='伍';   6:wei1:='陆';

7:wei1:='柒';   8:wei1:='捌';

9:wei1:='玖';   0:wei1:='零';

end;

{判断大写位置,可以继续增大到real类型的最大值,可是谁有那么多钱}

case   qianwei   of

-3:qianwei1:='厘';

-2:qianwei1:='分';

-1:qianwei1:='角';

0   :qianwei1:='元';

1   :qianwei1:='拾';

2   :qianwei1:='佰';

3   :qianwei1:='千';

4   :qianwei1:='万';

5   :qianwei1:='拾';

6   :qianwei1:='佰';

7   :qianwei1:='千';

8   :qianwei1:='亿';

9   :qianwei1:='十';

10:qianwei1:='佰';

11:qianwei1:='千';

end;

inc(qianwei);

BigMonth   :=wei1+qianwei1+BigMonth;{组合成大写金额}

end;

end;

SmallTOBig:=BigMonth;

end;


----------第五种方法---------

Function   TFormFhdCw.XxToDx(const   hjnum:real):String;

var   Vstr,zzz,cc,cc1,Presult:string;

xxbb:array[1..12]of   string;

uppna:array[0..9]   of   string;

iCount,iZero,vPoint,vdtlno:integer;

begin

//*设置大写中文数字和相应单位数组*//

xxbb[1]:='亿';

xxbb[2]:='仟';

xxbb[3]:='佰';

xxbb[4]:='拾';

xxbb[5]:='万';

xxbb[6]:='仟';

xxbb[7]:='佰';

xxbb[8]:='拾';

xxbb[9]:='元';

xxbb[10]:='.';

xxbb[11]:='角';

xxbb[12]:='分';

uppna[0]:='零';

uppna[1]:='壹';

uppna[2]:='贰';

uppna[3]:='叁';

uppna[4]:='肆';

uppna[5]:='伍';

uppna[6]:='陆';

uppna[7]:='柒';

uppna[8]:='捌';

uppna[9]:='玖';

Str(hjnum:12:2,Vstr);

cc:='';

cc1:='';

zzz:='';

result:='';

presult:='';

iZero:=0;

vPoint:=0;

for   iCount:=1   to   10   do

begin

cc:=Vstr[iCount];

if   cc<>'   '   then

begin

zzz:=xxbb[iCount];

if   cc='0'   then

begin

if   iZero<1   then   //*对“零”进行判断*//

cc:='零'

else

cc:='';

if   iCount=5   then   //*对万位“零”的处理*//

if   copy(result,length(result)-1,2)='零'   then

result:=copy(result,1,length(result)-2)+xxbb[iCount]

+'零'

else

result:=result+xxbb[iCount];

cc1:=cc;

zzz:='';

iZero:=iZero+1;

end

else

begin

if   cc='.'   then

begin

cc:='';

if   (cc1='')   or   (cc1='零')   then

begin

Presult:=copy(result,1,Length(result)-2);

result:=Presult;

iZero:=15;

end;

if   iZero>=1   then

zzz:=xxbb[9]

else

zzz:='';

vPoint:=1;

end

else

begin

iZero:=0;

cc:=uppna[StrToInt(cc)];

end

end;

result:=result+(cc+zzz)

end;

end;

If   Vstr[11]='0'   then   //*对小数点后两位进行处理*//

begin

if   Vstr[12]<>'0'   then

begin

cc:='零';

result:=result+cc;

cc:=uppna[StrToInt(Vstr[12])];

result:=result+(uppna[0]+cc+xxbb[12]);

end

end

else

begin

if   iZero=15   then

begin

cc:='零';

result:=result+cc;

end;

cc:=uppna[StrToInt(Vstr[11])];

result:=result+(cc+xxbb[11]);

if   Vstr[12]<>'0'   then

begin

cc:=uppna[StrToInt(Vstr[12])];

result:=result+(cc+xxbb[12]);

end;

end;

result:=result+'正';

end;


----------第六种方法----------

给你一段很短的代码吧,好用,我用过的

function   TForm1.xTOd(i:Real):string;

const

d='零壹贰叁肆伍陆柒捌玖分角元拾佰仟万拾佰仟亿';

var

m,k:string;

j:integer;

begin

k:='';

m:=floattostr(int(i*100));

for   j:=length(m)   downto   1   do

k:=k+d[(strtoint(m[Length(m)-j+1])+1)*2-1]+

d[(strtoint(m[Length(m)-j+1])+1)*2]+d[(10+j)*2-1]+d[(10+j)*2];

xTOd:=k;

end;

调用:

procedure   TForm1.Button1Click(Sender:   TObject);

var

Sum:real;

begin

sum:=12.34;

showmessage('人民币大写:'+xTOd(Sum));

end;


----------第七种方法----------

function   SmallTOBig(small:real):string;

var   SmallMonth,BigMonth:string;

wei1,qianwei1:string[2];

wei,qianwei,dianweizhi,qian:integer;

begin

{-------   修改参数令值更精确   -------}

{小数点后的位置,需要的话也可以改动-2值}

qianwei:=-2;

{转换成货币形式,需要的话小数点后加多几个零}

Smallmonth:=formatfloat('0.00',small);

{---------------------------------}

dianweizhi   :=pos('.',Smallmonth);{小数点的位置}

{循环小写货币的每一位,从小写的右边位置到左边}

for   qian:=length(Smallmonth)   downto   1   do

begin

{如果读到的不是小数点就继续}

if   qian<>dianweizhi   then

begin

{位置上的数转换成大写}

case   strtoint(copy(Smallmonth,qian,1))   of

1:wei1:='壹';   2:wei1:='贰';

3:wei1:='叁';   4:wei1:='肆';

5:wei1:='伍';   6:wei1:='陆';

7:wei1:='柒';   8:wei1:='捌';

9:wei1:='玖';   0:wei1:='零';

end;

{判断大写位置,可以继续增大到real类型的最大值}

case   qianwei   of

-3:qianwei1:='厘';

-2:qianwei1:='分';

-1:qianwei1:='角';

0   :qianwei1:='元';

1   :qianwei1:='拾';

2   :qianwei1:='佰';

3   :qianwei1:='千';

4   :qianwei1:='万';

5   :qianwei1:='拾';

6   :qianwei1:='佰';

7   :qianwei1:='千';

8   :qianwei1:='亿';

9   :qianwei1:='十';

10:qianwei1:='佰';

11:qianwei1:='千';

end;

inc(qianwei);

BigMonth   :=wei1+qianwei1+BigMonth;{组合成大写金额}

end;

end;

SmallTOBig:=BigMonth;

end;


----------第八种是小写转大写----------

用Delphi编写人民币大小写转换程序 本文是大写==>>小写            要小写==>>大写请跟我联系!

在财务管理系统中,有时需要打印大写人民币数字,于是笔者编写了以下一些函数使这一需要得以满足,现介绍如下:

注:copy(2005-Jey-QQ:344430663)本程序在Delphi7、Winwin2000下调试通过。}

function TForm1.shuzi(jey: string):string ;

var

i:integer;

s,s1,s2:integer;

ab:integer;

a,b,s3,s4:string;

begin

i:=1; ab:=0; a:=''; b:='';s:=0;s1:=0;s2:=0;s3:='0';s4:='0';

while i<=length(jey) do

begin

ab:=strtoint(shuzi1(copy(jey,i,2)));

if ab=10000000 then

begin

b:=copy(jey,i+2,length(jey));

a:=copy(jey,1,i-1)+'元';

end;

i:=i+2;

end;  //end-- while

if length(b)=0 then b:=jey;

i:=1;

while i<=length(b)  do

begin

s1:=strtoint(shuzi1(copy(b,i,2)));

if s1 in [0..9] then

begin

s:=s1;

end

else

begin

s:=s1*s;

s3:=inttostr((s)+strtoint(s3));

s:=0;

end;

i:=i+2;

end;  //end-- while

i:=1;s:=0;s1:=0;s2:=0;

while i<=length(a)  do

begin

s1:=strtoint(shuzi1(copy(a,i,2)));

if s1 in [0..9] then

begin

s:=s1;

end

else

begin

s:=s1*s;

s4:=inttostr((s)+strtoint(s4));

s:=0;

end;

i:=i+2;

end;  //end-- while

if length(s4)>1 then

result:=inttostr(strtoint(copy(s4,1,length(s4)-3))*10000+(strtoint(s3)div 1000))

else

result:=inttostr(strtoint(s3)div 1000);

if strtoint(copy(s3,length(s3)-1,1))<>0 then

result:=result+'.'+copy(s3,length(s3)-2,2)

else if strtoint(copy(s3,length(s3)-2,1))<>0 then

result:=result+'.'+copy(s3,length(s3)-2,1);

end;   //end-- begin

function TForm1.shuzi1(jey: string):string;

var

i:integer;

s:integer;

s1:string;

shu1:array of string[2];

begin

s1:='168';

i:=0;

SetLength(shu1,17);

shu1[16]:='万';shu1[15]:='仟';

shu1[14]:='佰'; shu1[13]:='拾'; shu1[12]:='元';shu1[11]:='角';shu1[10]:='分';

SHU1[0]:='零';SHU1[1]:='壹';SHU1[2]:='贰';SHU1[3]:='叁';SHU1[4]:='肆';

SHU1[5]:='伍';SHU1[6]:='陆';SHU1[7]:='柒';SHU1[8]:='捌';SHU1[9]:='玖';

for i:=0 to 16 do

begin

if jey<>shu1[i] then continue;

s:=i;

break;

end;

case s of

0:s1:='0';

1:s1:='1';

2:s1:='2';

3:s1:='3';

4:s1:='4';

5:s1:='5';

6:s1:='6';

7:s1:='7';

8:s1:='8';

9:s1:='9';

10:s1:='10';

11:s1:='100';

12:s1:='1000';

13:s1:='10000';

14:s1:='100000';

15:s1:='1000000';

16:s1:='10000000';

end;

result:=s1;

end;


----------第九种方法----------

Function NtoC(n0 :real) :String;

Function IIF(b :boolean; s1,s2:string):string;

begin //本函数在VFP和VB中均为系统内部函数

if b then IIF:=s1 else IIF:=s2;

end;

Const c = '零壹贰叁肆伍陆柒捌玖◇分角圆拾佰仟万拾佰仟亿拾佰仟万';

var L,i,n, code :integer;

Z :boolean;

s, st,st1 :string;

begin

s :=FormatFloat( '0.00', n0);

L :=Length(s);

Z :=n0<1;

For i:= 1 To L-3 do

begin

Val(Copy(s, L-i-2, 1), n, code);

st:=IIf((n=0)And(Z Or (i=9)Or(i=5)Or(i=1)), '', Copy(c, n*2+1, 2))

+ IIf((n=0)And((i<>9)And(i<>5)And(i<>1)Or Z And(i=1)),'',Copy(c,(i+13)*2-1,2))

+ st;

Z := (n=0);

end;

Z := False;

For i:= 1 To 2 do

begin

Val(Copy(s, L-i+1, 1), n, code);

st1:= IIf((n=0)And((i=1)Or(i=2)And(Z Or (n0<1))), '', Copy(c, n*2+1, 2))

+ IIf((n>0), Copy(c,(i+11)*2-1, 2), IIf((i=2) Or Z, '', '整'))

+ st1;

Z := (n=0);

end;

For i := 1 To Length(st) do If Copy(st, i, 4) = '亿万' Then Delete(st,i+2,2);

NtoC := IIf( n0=0, '零圆整', st + st1);

End;


 第十种 FastReport 创建"人民币大小写转换"自定义函数

FastReport 3.23.12 创建"人民币大小写转换"自定义函数

控件版本是:FastReport 3.23.12 Enterpise for d2006 (DeXter)

设置如下:

function TJzpzEdit1.MoneyCn(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;

//////////

procedure TJzpzEdit1.FormCreate(Sender: TObject);

begin

frxReport1.AddFunction('function MoneyCn(mmje: Double): String;','Myfunction','小写金额转大写的函数');

end;

//////////

function TJzpzEdit1.frxReport1UserFunction(const MethodName: string;

var Params: Variant): Variant;

begin

if UpperCase(MethodName) = UpperCase('MoneyCn') then

Result := MoneyCn(Params[0]);

end;

//////////

报表中调用方法

MoneyCn(50000000)


 第十一种方法 10行搞定数字转换成大写金额

//10行搞定数字转换成大写金额

//原创 渴死的鱼 hanlin2020@hotmail.com

//改编 inRm inrm@263.net

function NumToChar( n:Real): wideString; //可以到万亿,并可随便扩大

const cNum:WideString='零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分';

cCha:array[0..1, 0..11]of string =

(( '零仟','零佰','零拾','零零零','零零',

'零亿','零万','零元','亿万','零角','零分','零整'),

( '零','零','零','零','零','亿','万','元','亿','零','整','整'));

var i :Integer;

sNum :WideString;

begin

result := '';

sNum := FormatFloat('0',n*100);

for i := 1 to Length(sNum) do

result := result + cNum[ord(sNum[i])-47] + cNum[26-Length(sNum)+i];

for i:= 0 to 11 do //去掉多余的零

result := StringReplace(result, cCha[0,i], cCha[1,i], [rfReplaceAll]);

end;



----------第十二种方法----------


小写金额转换为大写

function MoneyToUpper(const NumBer: Double): string;

var StrNumber, AUpperNum, AMoneyUnit: string;

UpperNum: array[0..9] of string;

MoneyUnit: array[1..16] of string;

I: Integer;

AZero: Boolean;

N: Double;

begin

UpperNum[1] := '壹';

UpperNum[2] := '贰';

UpperNum[3] := '叁';

UpperNum[4] := '肆';

UpperNum[5] := '伍';

UpperNum[6] := '陆';

UpperNum[7] := '柒';

UpperNum[8] := '捌';

UpperNum[9] := '玖';

MoneyUnit[1] := '万';

MoneyUnit[2] := '仟';

MoneyUnit[3] := '佰';

MoneyUnit[4] := '拾';

MoneyUnit[5] := '亿';

MoneyUnit[6] := '仟';

MoneyUnit[7] := '佰';

MoneyUnit[8] := '拾';

MoneyUnit[9] := '万';

MoneyUnit[10] := '仟';

MoneyUnit[11] := '佰';

MoneyUnit[12] := '拾';

MoneyUnit[13] := '元';

MoneyUnit[14] := '.';

MoneyUnit[15] := '角';

MoneyUnit[16] := '分';

AZero := False;

AUpperNum := '';

AMoneyUnit := '';

result := '';

if NumBer < 0 then

begin

result := '负';

N := -NumBer;

end

else

N := NumBer;

Str(N: 16: 2, StrNumber);

for I := 1 to 16 do

begin

if StrNumber[I] <> '   ' then

begin

AMoneyUnit := MoneyUnit[I];

if StrNumber[I] = '0' then

begin

if AZero and (copy(result, Length(result) - 1, 2) = '零') then

result := copy(result, 1, Length(result) - 2);

case I of

1..4, 6..8, 10..12: begin //   万,仟,佰,拾

AUpperNum := '零';

AMoneyUnit := '';

end;

5, 9, 13: begin //   亿,万,元

if StrToFloat(StrNumber) < 1 then AMoneyUnit := '';

AUpperNum := '';

end;

15: begin //   角

if StrToFloat(StrNumber) < 1 then AUpperNum := ''

else AUpperNum := '零';

AMoneyUnit := '';

end;

16: begin //   分

AUpperNum := '';

AMoneyUnit := '';

end;

end;

AZero := True;

end

else

begin

if StrNumber[I] = '.' then

begin

AUpperNum := '';

AMoneyUnit := '';

end

else

begin

AZero := False;

AUpperNum := UpperNum[StrToInt(StrNumber[I])];

end

end;

result := result + (AUpperNum + AMoneyUnit)

end;

end;

result := result + '整';

end;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容