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

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也刚学不久,望哪位大侠赐教!
...全文
29 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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;


16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧