人民币怎么写?(50分)

  • 主题发起人 主题发起人 bowen_202
  • 开始时间 开始时间
B

bowen_202

Unregistered / Unconfirmed
GUEST, unregistred user!
将一钱数转换成人民币大写。如12345.54--〉壹万贰仟叁佰肆十伍元伍角肆分
 
Case of 结构呗
 
function TDBS.GetRMBChar(Value : Char; Level : Integer) : String;
var
S : String;
begin
case Value of
'0': S := '零';
'1': S := '壹';
'2': S := '贰';
'3': S := '叁';
'4': S := '肆';
'5': S := '伍';
'6': S := '陆';
'7': S := '柒';
'8': S := '捌';
'9': S := '玖';
end;

case Level of
0: S := S + '分';
1: S := S + '角';
2: S := S + '元';
3: S := S + '拾';
4: S := S + '佰';
5: S := S + '仟';
6: S := S + '萬';
7: S := S + '拾';
8: S := S + '佰';
9: S := S + '仟';
10: S := S + '億';
end;

Result := S;
end;

function TDBS.ChangeToRMB(Value : Extended) : String;
var
I : Integer;
S, S1 : String;
begin
S1 := FormatFloat('#.00', Value);
Delete(S1, Pos('.', S1), 1);

S := '';
for I := Length(S1) downto 1 do
S := GetRMBChar(S1, Length(S1) - I) + S;

S := S + '整(RMB:' + FormatFloat('#.00', Value) + ')';
Result := S;
end;
 
我现在用的:
function daxie_money(i:Real;if_daxie:boolean):shortstring;
const
d='零壹贰叁肆伍陆柒捌玖分角元拾佰仟万拾佰仟亿';
var
m,k:shortstring;
j:integer;
begin
k:='';
if if_daxie then
Begin
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];
cut_0_last_str(k);
End
else
Begin
k:=floattostr(i);
End;
daxie_money:=k;
end;

procedure cut_0_last_str(var the_all:shortstring);
var qq:integer;
Begin
for qq:=1 to (length(the_all) div 4) do
Begin
if not if_wei_0(the_all) then break;
End;
if copy(the_all,(length(the_all)-1),2)='元' then the_all:= the_all+'整'
else
if (copy(the_all,(length(the_all)-1),2)='分') or (copy(the_all,(length(the_all)-1),2)='角') then the_all:= the_all
else
the_all:= the_all+'元整';
End;
 
不好叫楼上的抢先了,查看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1685348
给我淀粉把?
 
谢谢楼上的各位!!!!
 
小子,你是不是作弊!!!bbs-wqt 不就是你吗!小心列入黑名单!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部