怎么将分数转换为小数(40分)

  • 主题发起人 主题发起人 风中的狼
  • 开始时间 开始时间

风中的狼

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序设计时遇到的问题:
用户经常会输入1/3之类的数据,并要对数据进行计算。
如Edit1中输入单价,Edit2中输入数量。
如果数量为整数或小数,那很好计算,只要在Edit3的OnEnetr事件中输入:
Var
S:String;
Begin
Str(StrToFloat(Edit1.Text)*StrToFloat(Edit2.Text):10:2,S);
Edit3.Text:=S;
End;
但象1/3这样的文本是不能通过StrToFloat转换的。
我想应该是将Edit2中的内容读入一个字符串,再判断其中有没有“/”
如果有再分别取出“/”前后的内容,然后运算得出一个小数再进行运算。
这只是我的理解,因为我没有使用过字符串操作,所以我现在不知该怎么办好!
大家有什么好的方法,请告诉我,谢谢!
 
用pos函数,看帮助,很简单的
 
to:Sun77wind
兄弟,不行啊,好象POS函数只是替换字符串中的字符的,可能是我太笨了,怎么也试
不出来。
举个例子教教我如何?分不够可以再加。
 
1、pos出/在字符串中的位置;
2、copy出/前后的字符。
 
to:gzfrank
兄弟啊,我就是不知道语句该怎么写啊!
手头一本参考书都没有,E文又实在太差!
还是请您举个例子吧!
求您啦!
 
s:=Edit1.Text
a:=copy(s,1,pos('/',s)-1);//分子
b:=copy(s,pos('/',s)+1,length(s));//分母
 
这客户也太难伺候了!?
 
s:=Edit1.Text
a:=copy(s,1,pos('/',s)-1);//分子
delete(s,1,pos('/',s));
b:=S;//分母。
 
同意pt_email
 
自己写代码实现
 
接受答案了.
 
后退
顶部