123---》壹佰贰拾叁元
123.5--》壹佰贰拾叁元伍角
1234---》壹千贰佰叁拾肆元
1234.5---》壹千贰佰叁拾肆元伍角
123.5--》壹佰贰拾叁元伍角
1234---》壹千贰佰叁拾肆元
1234.5---》壹千贰佰叁拾肆元伍角
解决方案 »
- 捕捉进程间消息
- 用fastreport中的条码控件打印,结果不一样
- MEMO的小问题
- 怎么把cxGrid最上面的column header去掉!
- 一个简单的问题。在线等候。
- 如何将查询结果附给RecordSet对象-内详
- 大家碰到过这种问题么?自己写的东西安装到别人机器上经常出现未知软件异常之类的错误!郁闷~~
- 会者不难!请问怎样取得系统当前时间(函数)。谢谢!
- 在中文字符串中怎样去到空格,为什么错误?
- 如何在一个程序启动的同时启动一个输入法,比如全拼了,类似accsess里一样?
- 为什么总是提示报[ODBC Microsoft Access Driver]密码无效啊?
- 三层删除问题,深夜等待
Function ReadRMB(F:Real):WideString;
Var ZeroFlag:Boolean;
STemp:String;
SStr:String;
I,N,X:Byte;
Const
Str2:Array[1..11] Of String=('分','角','元','拾','佰','仟','万','拾','佰','仟','亿');
Begin
ZeroFlag:=True; F:=F*100;
SStr:=FormatFloat('0',F);
N:=Length(SStr); STemp:=''; For I:=N DownTo 1 Do
Begin
If SStr[I]<>'0' Then
Begin
If SStr[I]='1' Then
STemp:='壹'+Str2[N-I+1]+STemp
Else If SStr[I]='2' Then
STemp:='贰'+Str2[N-I+1]+STemp
Else If SStr[I]='3' Then
STemp:='叁'+Str2[N-I+1]+STemp
Else If SStr[I]='4' Then
STemp:='肆'+Str2[N-I+1]+STemp
Else If SStr[I]='5' Then
STemp:='伍'+Str2[N-I+1]+STemp
Else If SStr[I]='6' Then
STemp:='陆'+Str2[N-I+1]+STemp
Else If SStr[I]='7' Then
STemp:='柒'+Str2[N-I+1]+STemp
Else If SStr[I]='8' Then
STemp:='捌'+Str2[N-I+1]+STemp
Else If SStr[I]='9' Then
STemp:='玖'+Str2[N-I+1]+STemp; If ZeroFlag Then
ZeroFlag:=False;
End
Else
Begin
X:=N-I+1;
If Not ZeroFlag Then
Begin
STemp:='零'+STemp;
ZeroFlag:=True;
End;
If ((X=3) Or (X=7) Or (X=11)) Then
STemp:=Str2[X]+STemp;
End;
End;
If Stemp<>'' Then
STemp:=STemp+'整'
Else
Stemp:='零元整'; ReadRMB:=STemp;
end;
const
BigPerChar:array[0..1] of String=('万','亿');
var
l:Integer;
function SmallNumToChar(NumStr: String): String;
const
BigChar:array[0..9] of String=('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
BigPerChar:array[0..3] of String=('','拾','佰','仟');
var
rl,l,i:Integer;
begin
Result:='';
l:=Length(NumStr);
for i:=0 to l-1 do
begin
if NumStr[i]<>'0' then
begin
Result:=Result+BigChar[StrToInt(NumStr[i+1])]
end
else
begin
if (NumStr[i+1]<>'0') then
begin
Result:=Result+BigChar[StrToInt(NumStr[i+1])]
end
end;
if (NumStr[i+1]<>'0') then Result:=Result+BigPerChar[l-i-1];
end;
rl:=Length(Result);
if Copy(Result,rl-1,2)=BigChar[0] then Result:=Copy(Result,1,rl-2);
end;
begin
Result:='';
NumStr:=Trim(NumStr)+'.';
NumStr:=Copy(NumStr,1,Pos('.',NumStr)-1);
if NumStr<>'' then
begin
l:=Length(NumStr);
if l>8 then
begin
Result:=SmallNumToChar(Copy(NumStr,1,l-8))+BigPerChar[1];
NumStr:=Copy(NumStr,l-8+1,8);
l:=8;
end;
if l>4 then
begin
Result:=Result+SmallNumToChar(Copy(NumStr,1,l-4))+BigPerChar[0];
NumStr:=Copy(NumStr,l-4+1,4);
l:=4;
end;
Result:=Result+SmallNumToChar(Copy(NumStr,1,l));
end;end;
调用例子: ShowMessage(NumToChar('120043302'));