QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

/ g) A. P) k k4 y

在onKeyPress事件中作一些处理

+ B6 U6 H x# c6 m4 I4 ?

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

w7 }$ X; N9 x# o& Q4 w- l

- ?1 \) E" x+ m3 [: ]5 M6 M* w

然后设置相应的标志。

% r9 Q5 I s. L, t( @8 D5 ?

3 z8 K% j) w5 I# m$ |$ I2 v

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

+ r" i9 \6 a' `% E' C T; i

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

& D! H% v1 v5 ~6 f# ?) f

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

- |) t3 P9 `. h# h; A

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

: n8 F$ {2 B/ s

4 Y! y/ |; k+ r7 Y" ?

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

* H4 I$ l8 g. z% Y- u ?

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

1 @7 t2 O ?+ b8 B( P

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

+ j4 r2 h C" J( T, v* P

就表明不是合法的数字

6 n2 B9 f; g% {, U+ ~( ]! `; y

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

- v. |. w: [! c, J

4 \ ^0 }" Q- o! p1 V& \

try

5 P" x# P1 J! o. D

{

# X4 q7 H% |* I' F3 c: I* w

Edit1->Text.ToDouble();

5 J& J' T. j+ e h6 ?

try

7 Y* V7 R# h( I3 s1 D+ e4 A4 Y% u p

{

+ i7 d2 u) X2 Q1 P5 D: u$ L

Edit1->Text.ToInt();

# W/ _; ] ^4 Q$ l: N6 f5 [ a, N

ShowMessage("is a int");

) x' M7 `' b m$ \

}

+ `- P$ I J$ p1 E

catch(const EConvertError &e)

! i# j1 _/ z' O$ N

{

1 U, `6 T/ s" S

ShowMessage("is a double");

/ \9 W4 _, x1 T g

}

0 g5 T. K: Z: A

}

U6 W0 k4 U! B4 p: G% {

catch(const EConvertError &e)

5 E* a2 x' S! H: m

{

& }1 f U8 w c6 `) y

ShowMessage("not a int ot double");

) \4 ^& N h9 N+ D

}

; v" Q2 x; f1 Q1 @7 l

9 c, m C# D$ i$ G8 a4 H

上面的代码已通过调试

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 20:45 , Processed in 0.456276 second(s), 52 queries .

回顶部