QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

! w- }' }; w/ V1 N9 P4 j. v9 i

在onKeyPress事件中作一些处理

/ j( |& @" L+ e e

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

( ?+ F+ ^5 I6 C! O5 W3 d" s/ \3 p

) `1 [ V p P! S- ]8 o5 f8 z! n

然后设置相应的标志。

# @6 n4 h- d, [! p' H

$ H9 P8 a. q. z9 a' }

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

3 v, c- e5 C: K9 J3 g; [4 m

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

* Q$ W( Q2 ^* j" W* m. ?: a

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

, ]. t- \) }! z

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

1 m* L' l) k( l) l; K3 v! d+ Z/ P

v6 L' j: p. `7 x

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

, b* B% |. T; r3 q( [: h

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

; v2 G1 u! z- C; y- w1 G7 v

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

3 t( k5 ^. |5 A' w1 C) C/ d

就表明不是合法的数字

8 |6 w- _2 t1 k

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

! a$ j5 |% m; S* ]

2 O: w! ~. B- u7 N. z

try

2 U2 a! M3 O+ {0 r

{

- ?# C. [& l9 J+ n( k2 C

Edit1->Text.ToDouble();

, O! ]% a0 Q. K& p6 m

try

; P+ J; }5 C4 @8 T

{

) N U ^% C- W3 x2 a' a/ {

Edit1->Text.ToInt();

! U7 T6 q) V5 `; p n* D

ShowMessage("is a int");

9 K5 m9 C( |5 X P3 A7 l

}

0 J. H3 q# }2 H( r+ Z

catch(const EConvertError &e)

4 `) l! b6 M/ U7 S! B

{

0 {+ y& l* V( |) }$ A6 J& \

ShowMessage("is a double");

/ T3 d) w# _1 J& f) k0 |$ V

}

$ X" I# V$ b, R

}

1 H4 C- G C8 g

catch(const EConvertError &e)

+ r, r2 N" y9 L) J

{

) L) T5 _* X! c- u

ShowMessage("not a int ot double");

4 N9 t" x* L" l* R9 w6 q

}

~: g* b5 G# I* k4 r6 V

7 x3 w2 Z$ x! F9 c6 J8 J" O- X5 G$ V7 |

上面的代码已通过调试

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

回顶部