有关字串转换成数值的问题(50分)

  • 主题发起人 主题发起人 阿舍
  • 开始时间 开始时间

阿舍

Unregistered / Unconfirmed
GUEST, unregistred user!
StrToInt, StrToFloat,如果参数包含字母,则转换时错误。

如: 20AB, 希望转换得到结果: 20,如何解决???
 
StrToIntDef('20AB',20);
StrToFloatDef('20AB',20);

 
做一个过滤函数,删除所有非数字的字符。
 
如果是 20AB13,希望的结果是什么?
 
function qustr(const str:string):int;
var
i:integer;
s:string;
begin
i:=0
s:=''
while i<length(str)
begin
i:=i+1;
if copy(str,i,1) in ['0'..'9'] then
s=s+copy(str,i,1);
end;
result:=StrToInt(s);
end;
 
来自:TYZhang, 时间:2004-5-10 14:34:17, ID:2602438
StrToIntDef('20AB',20);
StrToFloatDef('20AB',20);

=> 但我不知道需要转换的字串,用户输入的是什么值呀。。。显然用第二个参数不可取。




来自:xianguo, 时间:2004-5-10 14:42:40, ID:2602450
如果是 20AB13,希望的结果是什么?

=> 20AB13,希望取出20。即前面可以转换为整型或浮点型的部分。如果没有数值可以转换,就返回 0。



不过,我采用 Val() 函数已经解决了问题,但不知道有没有更好的办法。
 
后退
顶部