QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

. L0 [1 Z5 z0 |' ]( C. q1 O. ?8 ~

在onKeyPress事件中作一些处理

6 F; R9 f! r% ]4 g }/ a

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

2 H- X- P, c2 ~) v, G- C6 Z9 `, S, `

, V- P3 L& P5 D1 U7 \

然后设置相应的标志。

4 t1 @) |# N2 a b+ ?) t9 i; q6 l7 a

& L, D( H1 l$ i. l5 [" H8 M

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

- x9 q6 d% ~$ e

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

% l! Z; T' u Z3 \+ O

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

. l4 E5 L3 |) T* ?4 d0 C# m

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

. W, A8 F0 G; P- {

2 d5 s5 l1 H7 K: ]

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

! [6 L. d4 q3 D9 o Y& N y

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

* c E B' q' Z8 C- K, \. h

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

, Y x m& J, K1 M& {0 a% e

就表明不是合法的数字

8 [ C) j" U$ \7 L0 F) ]0 R* N$ m

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

7 ^6 w# P+ [5 K

- g- o4 t: w" N" l

try

% g: L% N f6 j8 c# Y. V y

{

% }$ p9 e' _& B4 G0 y; F, B1 E

Edit1->Text.ToDouble();

3 n, [: R4 w. R* T* c& y

try

@: U7 u0 P D7 l

{

! I9 ^- f' A6 ]: z0 G! L0 H9 {4 ~

Edit1->Text.ToInt();

% ?0 ?9 S1 x. p7 }9 S2 x3 q; c4 V

ShowMessage("is a int");

9 P) r# s$ g9 P

}

0 J- k; n4 S4 D) i5 B

catch(const EConvertError &e)

; [1 d# F. S; d2 `) z2 ?

{

- b+ G$ c/ [) [" W k1 r+ y

ShowMessage("is a double");

" ~6 R7 o, B* T# j) r( m6 Q

}

# O$ T. y" v- E

}

6 j3 b2 N( C7 e) z, O# b$ P

catch(const EConvertError &e)

* M% O: O p6 e# Z* z: D$ Z

{

6 U2 m' U+ s% _

ShowMessage("not a int ot double");

$ q+ u& G3 h8 ]

}

. `* ^& Z5 R) H

+ I* L! y* E E E3 ~9 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-8-10 19:31 , Processed in 0.432385 second(s), 53 queries .

回顶部