如题.现在是从其他地方获得一串字符,但是要判断这串字符是否为数值型(包括浮点)然后自动转换!
请高手们给个例子吧,谢谢啦
请高手们给个例子吧,谢谢啦
解决方案 »
- delphi xe showmessage方法闪一下就消失了
- 100分求一个delphi的单向循环链表的例子
- 网游的世界很精彩?
- 怎么搞的? 贴子下面怎么有GOOGLE的广告?
- 用EncodeDate出错在线等待!
- 基础问题~关于按钮的使用
- 用delphi开发的activex。
- 如何实现从一个excel的单元格取出一个数赋值给另一个excel的单元格
- 在对table执行insertrecord时提示 'index is read only'怎么办,一定要拉一把.我是新手.
- 怎么用delphi实现98/2000的日志管理?(类似于nt的日志),具体如何实现?
- 我的Delphi7为何没有dxSidebar控件
- 为什么可以改变TButton上文字的大小,而不能改变文字的颜色?
a :Double;
...
try
a := StrToFloat('1.0345');
except
ShowMessage('不是浮点数');
end;
for i:=0 to Length(str)-1 do
if str[i] not in ['0'..'9','.'] then
ShowMessage('不是浮点数');
以上代码仅供参考,可能有些问题,因为我现在电脑上没有delphi,所以没做测试。好象String类型变量str的第一位str[0]保存的是长度,我也记不确切了,楼主感兴趣的话可以试试。
if key not in [#48..#57] then
dey:=#0;
var
a:Variant
强制转换,如果不是就从except里报错
在Keypress事件里过滤
if key not in [#48..#57] then
dey:=#0;
==============
补充一下,考虑用户输 删除、回车,箭头 等键。
直接用 trystrtofloat函数就可以了
呵呵
a :Double;
...
try
a := StrToFloat(Self.edit1.text);//转换
except
MessageBox(....);//Error
end;
a :Double;
...
if TryStrToFloat(edit1.text, a) then
... //是数值型,同时值已转换并保存到变量a
else
... //不是数值型
又学到一招,记住了补充一点:for i:=0 to Length(str)-1 do
if str[i] not in ['0'..'9','.'] then
ShowMessage('不是浮点数');这种方法不行,比如,Str = '0.0.0.0.0.',用这种方法判断是一个数值,但实际上不是