QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3198|回复: 0
打印 上一主题 下一主题

判断EDIT框输入的是否为数字

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-1-26 12:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

" \7 t) _3 p% ?4 z# c' @) K4 k

在onKeyPress事件中作一些处理

- N- O2 }, S& `, E

使得输入只能是数字和一个小数点

6 S, C( F/ n, K9 K/ Z

- [. p; m' ~! T; l$ D

然后设置相应的标志。

# y. o0 J& m6 f8 a4 K R2 m; b6 t

c4 ` g# R& o. _8 X; f

当然,还有另外的办法,就是用pos函数来查找是否有小数点

5 P' T# ?) ?/ U* x2 C* ~

如果没有,那么就是整数,反之是小暑,但是这个方法有一个缺陷

8 H8 Z# x I6 `, F6 r! d3 ^2 |9 O" L

就是如果输入的不只是数字,还有字母的话,那么判断显然是错误的。

- l! M# g; Z1 t1 h( q# ~1 I/ X& ~

此外,如果是以指数方式表示的,那么前两种的判断方法都会复杂起来。

, j; u7 |4 v% g7 Y

& D2 A' ?) U+ U c- o

于是,还有第三个办法,用好Exception

* I- U! p; ]/ G- }

首先,用Edit1->Text.ToInt,如果不产生异常,表明是整数,反之用

& C1 V3 \% b# H' j" r: ]/ j) w

Edit1->Text.ToDouble,如果不产生异常,那么是小数,反之

9 ~# W1 k8 M4 l8 X

就表明不是合法的数字

* x! X* q, m8 b Q6 r! g3 R8 r8 z

这个办法最方便。大概的程序代码如下

6 z$ \6 r' h! X) B9 ?4 [

( p. @! d# @6 A: |: `$ h& s

try

) K' W) d& o: _# x" V

{

3 z& s/ T/ `3 m8 j& H+ |; z" y5 u

Edit1->Text.ToDouble();

( r6 W' B6 b' d2 c6 Z+ Q' {/ Q# L- H# n

try

' B: b; l4 T! K! Z

{

! }3 K6 d- n! o9 e7 B ?4 |

Edit1->Text.ToInt();

* o6 p; z) F& P+ ]

ShowMessage("is a int");

3 P- j. ]' m1 R- t8 X4 a

}

' U- p( e9 ^( A' A% @. D% \4 l( E, H

catch(const EConvertError &e)

. e, Q8 @4 y! V1 k9 m

{

6 N5 O; O6 n( ?8 R: Q

ShowMessage("is a double");

" w8 C0 B& |2 w& W/ j# q2 l8 g* C

}

( i3 J: s: h# K

}

l9 \; w. l/ a; A+ O

catch(const EConvertError &e)

% [( r5 A* u9 ~ M. J* p

{

2 B6 B. d" e- @4 V) r

ShowMessage("not a int ot double");

, o5 P( c, X& t/ H" {

}

. V* w! R* y8 @7 c9 ]7 v2 I

' R9 M: _4 F) T

上面的代码已通过调试

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-6-16 03:52 , Processed in 0.425103 second(s), 52 queries .

回顶部