求英文大写转换函数,很急!!!!!!!!! (200分)

  • 主题发起人 主题发起人 ff9
  • 开始时间 开始时间
F

ff9

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
比如输入30,978.00
要转换为
THIRTY THOUSAND NINE HUNDRED AND SEVENTY EIGHT $
delphi 代码
 
你可以自己写一个函数啊,这个难度不高只是有点繁琐...
 
網上見過,好像在www.playicq.com 中有.
 
很急,希望哪位高手有现成的。
 
www.playicq.com
要money呀
 
用此函数:upcase(x)
如:upcase('a')='A'
 
再如:
var
mystr:string;
i:integer;
begin
mystr:=串型变量
I:=length(mystr);//得到串变量的长度
while I>0 do
begin
mystr:=upcase(mystr);
i:=i-1;
end;

while i
 
更正上条:
再如:
var
mystr:string;
i:integer;
begin
mystr:=串型变量
I:=length(mystr);//得到串变量的长度
while I>0 do
begin
mystr:=upcase(mystr);
i:=i-1;
end;


//上面哪条最后一行的while i是没用的我多打了些字母忘了删了,别误导你。
 
这样不行,看看题目先!
 
你是想把大写转换成小写,还是想把小写转换成大写?
 
function Tform1.SmallTOBig(small:real):string

var SmallMonth,BigMonth:string

wei1,qianwei1:string[2]

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

调用如下edit1.text:=SmallTOBig(1234567890.1234)他自动默认小数点后两位
 
有空用用搜索功能:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=751310
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=2286751
 
多人接受答案了。
 
后退
顶部