怎样更简单的判断一个字符串是否能转换成数字类型?(50分)

  • 主题发起人 主题发起人 HongKong3
  • 开始时间 开始时间
H

HongKong3

Unregistered / Unconfirmed
GUEST, unregistred user!
有没有什么函数或方法用于判断?
 
strtoint
再try一下
 
请问有没有函数 如Pb中的ISNumber()来判断?
 
try
StrToInt(你的变量)
except
end;
 
function GetStrNumber(Str: String): String;
var
I: Integer;
aChar: Char;
PStr: String;
begin
PStr := '';
for I:=Length(Str) downto 1 do
begin
aChar := Str;
if (aChar<='9') and (aChar>='0') then
PStr := aChar+PStr
else Break;
end;
if PStr='' then
PStr := '-1';
Result := PStr;
end;


这个 Function 能取字符串中的数字也可以检测是否可能转换了


 
function IsNumeric(s: string): Boolean;
var
n: Extended;
begin
Result := TextToFloat(PChar(s), n, fvExtended);
end;
 
val 函数, 其中有个错误号码, 呵呵。
原来 pascal 的东西别忘了。
 
还是
try
i:=strtoint(str)
except
showmessage('非数字串');
end;
最简单!
 
try
...
except
...
end;
最好。
 
还是用Val比较好,转换的结果既可以是整数,也可以是实数,其Code参数不但可以表示
能否转换,还表示错在什么位置。
Val 是一个Pascal标准过程,如果感觉不太方便的话,可以利用它定义函数,如:
function StrToNum(s:string
var v):integer
overload
//返回代码,转换结果在参数V中
begin
Val(s,v,Result)
end;
function StrToNum(s:string
Default:integer):integer
overload
//返回转换结果整数,不能转换则取缺省值
var
Code:integer;
begin
Val(s,Result,Code);
if Code>0 then
Result:=Default;
end;
function StrToNum(s:string
Default:Real):Real
overload
//返回转换结果实数,不能转换则取缺省值
var
Code:integer;
begin
Val(s,Result,Code);
if Code>0 then
Result:=Default;
end;
function IsNumeric(s:string):boolean
//只判断能不能转换
var
x:real;
code:integer;
begin
val(s,x,code);
Result:=Code=0
end;
......
 
接受答案了.
 

Similar threads

回复
0
查看
848
不得闲
回复
0
查看
863
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部