还是用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;
......