QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

/ \, J3 a% Q# R5 r S- h8 o

在onKeyPress事件中作一些处理

! S# a e6 |: K. U0 m) ]) S

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

, b# |. z# u! G8 V

& ^' o0 e: e, x5 N7 A8 U8 F1 \ O

然后设置相应的标志。

8 i: M& h. R% c& M1 N" p

7 [$ f# r4 x$ b4 b

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

8 m' J+ i" t# r# s

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

9 c$ y) C7 b, E( p% R4 e$ F; h

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

2 H/ \1 {, L( Y. Z) z; [

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

0 c3 J2 V$ v1 w2 Y: M3 _

8 ?; R- v2 n0 w* X# w

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

3 g2 c) n- X7 U, b

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

' z5 ^2 D' Y8 q* `/ O

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

# ~, ]1 Y% Z: n3 V

就表明不是合法的数字

+ V4 O0 U1 [* Y1 l

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

. L4 B& A# L8 s7 L+ H' {# V& h3 ~5 p

; C$ s. t M* Q3 N3 L4 J$ j& A

try

& i& [% t' R3 ?- n1 v/ U5 q+ m

{

3 L! {9 t3 q) R4 y

Edit1->Text.ToDouble();

! D& F; f8 C2 ] a. s9 u! r, B9 C

try

3 X% F& }( @& ^9 c8 [

{

3 B: O) F9 `- g- n6 \7 M8 u

Edit1->Text.ToInt();

% N/ i4 {( Y2 P

ShowMessage("is a int");

% f E' [/ S; r. j

}

" X1 H+ ~6 Y5 L- n

catch(const EConvertError &e)

# G: f$ v9 [; H, Y

{

/ Y- g" M' i1 \+ t q

ShowMessage("is a double");

8 {7 C2 _- O" h. a7 S0 P

}

8 U7 d+ J3 c1 b }

}

& g8 K6 |6 F7 e! i% k

catch(const EConvertError &e)

) V5 K7 K! c, N5 Z% x

{

/ V& T9 O. r0 B6 V

ShowMessage("not a int ot double");

$ ~0 d* K3 z! \% f

}

9 E9 d& h% I8 D% A

8 o% ^" h2 W( @' {( S! V: U+ E5 U

上面的代码已通过调试

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 12:07 , Processed in 0.302819 second(s), 52 queries .

回顶部