QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

' G& V1 {3 e1 I6 U

在onKeyPress事件中作一些处理

- d5 O& i9 E' ~ Q- n4 X, N o, I

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

$ M, E! C0 t! S0 t( T

; [0 c+ Q( j7 N: S6 P" v$ Y

然后设置相应的标志。

: G+ V* t4 F; ?: p& W9 u

+ _8 P" O. `# |# S* T

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

E: \; a ~. }- n/ R

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

& d1 e6 E4 x4 I8 i6 o+ a/ t3 K

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

, [" D. A. l9 L4 q$ g

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

) N2 t$ \: E: G$ P K

2 R7 z2 g# N7 W' `

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

1 D, B' n& ?: y2 G2 m; F, x

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

' I* v' R3 x" S# n) ?

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

V, ^ v/ L3 S; a9 z( Y* L9 c' P l

就表明不是合法的数字

' H+ p9 u7 u% k+ h) z* J

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

3 ?% R9 u. q/ d: d- q& ?' D7 T9 J

' _* @' f% H, p" |+ l/ G

try

- m: Y2 V- _( D

{

6 S& Z# R* N' U

Edit1->Text.ToDouble();

7 q! U4 }0 ~5 ]7 V+ Q

try

: w9 [1 N! f: C; q' h7 B

{

+ j$ s D6 t4 @

Edit1->Text.ToInt();

% Q- g7 m9 n* O7 J# ?& [

ShowMessage("is a int");

& g8 @+ f+ W5 u! x7 N

}

) M/ \& p3 t* Q# j* ^( `

catch(const EConvertError &e)

- T/ t+ l$ \7 q' Y0 ?" d

{

$ V. D& N' }4 m4 z' s5 n, ^0 [0 y

ShowMessage("is a double");

7 m( b4 E' U& `3 ~

}

/ Q1 b# z9 W% O0 n

}

4 r0 J% d! P( {9 v5 d0 i6 h

catch(const EConvertError &e)

7 q) Z. p( d& |# T/ ^/ f. {

{

, ?& [% z6 d( C; r& w

ShowMessage("not a int ot double");

5 Y' y1 S# ^. a5 l9 o8 ?+ b" v& Y) o

}

; b/ g, h+ L; u

, K. |9 g. h& k2 Z

上面的代码已通过调试

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-10-18 01:47 , Processed in 0.398132 second(s), 52 queries .

回顶部