英寸转化为码的函数!
材料的规格是这样:24.7*35.8*2
现在想把前面的两个数(英寸)转化为码,最后面的那个数是个数就不要了。
1英寸=0.28码
规格是用户输入,所以写函数的时候要以*判断截取字符串转化。
Function ChangeGuiGe(GG:string):string;
var //英寸转化为码
Real1,Real2:Double;
Sub1,Sub2:string;
begin
if pos('*',GG)>0 then
begin
Sub1:=Copy(GG,1,pos('*',GG)-1);
GG:=Copy(GG,Pos('*',GG)+1,Length(GG));
Sub2:=Copy(GG,1,Pos('*',GG)-1);
Real1:=strtoFloat(sub1)*0.28;
Real2:=StrtoFloat(Sub2)*0.28;
Result:=Floattostr(Real1)+Floattostr(Real2);
end;
end;
我写的这个可以编译,但运行时出错,错在哪?
材料的规格是这样:24.7*35.8*2
现在想把前面的两个数(英寸)转化为码,最后面的那个数是个数就不要了。
1英寸=0.28码
规格是用户输入,所以写函数的时候要以*判断截取字符串转化。
Function ChangeGuiGe(GG:string):string;
var //英寸转化为码
Real1,Real2:Double;
Sub1,Sub2:string;
begin
if pos('*',GG)>0 then
begin
Sub1:=Copy(GG,1,pos('*',GG)-1);
GG:=Copy(GG,Pos('*',GG)+1,Length(GG));
Sub2:=Copy(GG,1,Pos('*',GG)-1);
Real1:=strtoFloat(sub1)*0.28;
Real2:=StrtoFloat(Sub2)*0.28;
Result:=Floattostr(Real1)+Floattostr(Real2);
end;
end;
我写的这个可以编译,但运行时出错,错在哪?
解决方案 »
- 提示Array Type Required!简单问题, 二维数组如何做函数参数?
- 晕了.再不解决就没饭碗了..救小弟一命!!!
- 这段C++怎么翻译成Object Pascal的?
- 有关用InstallShield打包程序的一个问题!
- RESIZE时会清除背景图片(一瞬间)
- 如何设计这个表?(送分100,心情不好,婚姻不如意!)
- 如何用TTabel控件更新表中已存在记录???????用下面语句更新,提示:"记录主键重复"
- 系统登陆的问题
- 有两张相同的表,怎样用SQL语句将第一张表的某一行记录拷贝到另一张表中
- 有没有人象这样的习惯,不知道好不好
- 用Delphi6做的软件(有打印报表),安装后,如果机器上不安装打印机驱动就会出错.为什么?(在线等)
- 头回来,请多关照,呵呵
这句错误,先两个数字加,再变为字符串
var Real3:Double;
Real3 := Real1 + Real2;
Result := Floattostr(Real3);
或者在程序里另外用一个来保存Copy(GG,Pos('*',GG)+1,Length(GG));
var //英寸转化为码
Real1,Real2:Double;
Sub1,Sub2,Sub3:string;
begin
if pos('*',GG)>0 then
begin
Sub1:=Copy(GG,1,pos('*',GG)-1);
GG:=Copy(GG,Pos('*',GG)+1,Length(GG));
Sub2:=Copy(GG,1,Pos('*',GG)-1);
GG:=Copy(GG,Pos('*',GG)+1,Length(GG));
Sub3:=Copy(GG,1,Pos('*',GG)-1);
Real1:=strtoFloat(sub1)*0.28;
Real2:=StrtoFloat(Sub2)*0.28;
Result:=Floattostr(Real1)+'*'+Floattostr(Real2)+'*'+Sub3;
end;
end;
前面两个数转换正常,可是最后那个数字没显示出来,Sub3有错吗?
sub2 := Copy(gg,pos('*',GG),pos('*',copy(gg,pos('*',GG)-1,Length(GG)))) // 35.8
sub3 := Copy(copy(gg,pos('*',GG)-1,Length(GG)),1,Length(GG));