判斷一個字符串是不是數字,用什麽函數?(100分)

  • 主题发起人 主题发起人 searoom
  • 开始时间 开始时间
S

searoom

Unregistered / Unconfirmed
GUEST, unregistred user!
isnumeric() 好像只能對char類型的參數

而我現在想轉的是string
 
我给你一个自义函数吧,在调试时会有提示信息,但直接执行exe文件是不会出错的。
//判断s是否能返回成数值
Function IsNumeric(S:string):Boolean;
var
da:Double;
begin
Result:=False;
if S='' then exit;
try
Da:=StrtoFloat(S);
Result:=true;
except
exit;
end;
end;
 
再简化些
Function StringIsNumeric(const S:string):Boolean;
begin
try
StrToInt(Trim(S)); //or StrToFloat(Trim(s));根据需要
Result:=true;
except
Result:=false;
end;
end;
 
来晚了~
非数字的字符串 StrToInt 时会出错 再自己写异常就行了
 
哈!
确实来了呀,没饭吃咯!~~~~~~~~
 
我这有个好用极了的函数:TRYSTRTOINT()
 
同意上面的方法:
不过在有些时候, 不一定可以的

我吃过亏
下面是我痛定思痛后看自已写的一个函数,希望对你有所帮助


{功能:
检查数值是否为数值型
返回值: boolean
}
function is_float(data:string):boolean;
var
float :boolean;
len, i:integer;
dot:integer; //小数点数量
begin
result:=false;
len:=length(data);
dot:=0;
if len<=0 then
exit;
if (len=1) and ((data[1]<'0') or (data[1]>'9')) then
exit;
for i:=1 to len do
begin
if i=1 then
begin
if (data<>'-') and ((data<'0') or (data>'9')) then
exit
end
else
if (data<>'.') and ((data<'0') or (data>'9')) then
exit;
if data='.' then
dot:=dot+1;
if dot>1 then
exit;
end;
result:=true;
end;
 
收了慢慢看!
 

Similar threads

后退
顶部