QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

. a5 T7 F* d* e8 j. V9 Y3 ]# o+ }

在onKeyPress事件中作一些处理

5 I Z+ r+ N5 G* |( t q4 }

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

, K! G @' h) Q& l; o; D& s

" Q, K9 _5 e6 ]1 V2 Z" ^9 Z

然后设置相应的标志。

; N8 f; h' \! N+ G$ f1 ]

1 V# ^. d3 f' o

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

, g6 @2 D. j0 j I

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

/ r( E' @$ x$ T% y

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

$ i9 |5 o$ _% g" i5 _3 f8 S/ v a6 Z

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

& V; P6 L: l* s8 {2 j5 m- B: E& [% b

o/ p9 ?+ x1 X2 p

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

* n6 A9 z: g' C3 J- o, t

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

" j/ H1 d* B: E3 u$ z( D

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

9 Y0 I4 ^) W8 I) c

就表明不是合法的数字

! v2 r2 O+ o6 i% [# I& `

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

1 n) p' X: I# U

% P' ?+ H, g& {( o

try

2 Q$ m2 C- {+ E

{

( `+ d( Z! B3 |8 I% _

Edit1->Text.ToDouble();

( b. U% a* ^0 U% E: B/ } i

try

, s: j+ e' F8 g1 G" ~& f) a

{

4 R4 f( [0 |0 Z. s: {

Edit1->Text.ToInt();

* M. _/ b3 {8 R0 @5 |: x

ShowMessage("is a int");

H8 U0 ]$ E" W. E3 ?7 l/ ^

}

7 l" k) I V" E

catch(const EConvertError &e)

4 k ~6 Q( i+ o5 S5 h' D, @

{

1 K/ r8 P: s9 \; b" X' q5 V

ShowMessage("is a double");

7 I0 s+ M, w( o; t5 |- S+ N

}

! {- R4 [) Q+ E' s' j

}

) h2 ?6 k$ ~3 R" O$ Z# J8 ?

catch(const EConvertError &e)

m: X8 ]9 l1 k! V

{

! G% {" i. h6 }/ n; X6 [ u

ShowMessage("not a int ot double");

5 B2 [5 y1 B2 v4 ~

}

2 A: u1 F. n7 e. ?; q; m& b a& ] y

% s, @5 y o) e& B9 @; h( B' a

上面的代码已通过调试

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-4-18 15:49 , Processed in 0.421892 second(s), 52 queries .

回顶部