急!如何判断一字符串是否为数字串?

kwest 2003-04-08 05:44:08
如何判断一字符串是否为数字串?
如: '123.456000' 为数字,但'+123Edfd我12'为非字符串.
而'+123E-7',为数字串.
Delphi7帮助中:
对function StrToFloat(const S: string): Extended; overload;
中S的定义
S must consist of an optional sign (+ or -), a string of digits with an optional decimal point, and an optional mantissa. The mantissa consists of 'E' or 'e' followed by an optional sign (+ or -) and a whole number. Leading and trailing blanks are ignored.

若S为'+123Edfd我12',通过StrToFloat转换不成功,会引发EConvertError
异常.
能否通过这一点来判断S是否为数字串?(最好能简化为用if 判断)
本人一直以来对异常(C++,Delphi)都不明白,Delphi也刚学不久,望哪位大侠赐教!
...全文
7 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
llnm 2003-04-08
同意Bes96261(秋水孤鶩) 的,Taken(铁拳) 你的函数中 n := StrToInt('你的字符串')只可以判断整形的数据!楼主是要浮点数类型的
回复
kwest 2003-04-08
非常感谢!
回复
Taken 2003-04-08
function IsNumString(s: String): Boolean;
begin
Result := True;
try
n := StrToInt('你的字符串');
//类似的,其他类型数字用相应的函数
except
//如果不是数字字符串会出错,执行这里的代码
Result := False;
end;
end;
回复
BES 2003-04-08
var Str: String;
NumReal: Real;

Try
NumReal := StrToFloat(Str);
Except
ShowMessage(Str+' 不是一個有效的數值 ');
//Abort;
.....
End;


回复
相关推荐
发帖
语言基础/算法/系统设计
创建于2007-08-02

1.6w+

社区成员

Delphi 语言基础/算法/系统设计
申请成为版主
帖子事件
创建了帖子
2003-04-08 05:44
社区公告
暂无公告