QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

6 q: q6 m: {+ p# v, I: f( f) W

在onKeyPress事件中作一些处理

7 Z& R! J: N' O5 X' t6 ^% ]

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

0 c1 U$ W+ u9 j7 x2 r( V

6 Q" Q; F- g2 H$ |6 j. g

然后设置相应的标志。

; v4 R" U$ G0 ]6 p& t

4 E0 D6 Q6 e% y T

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

: P) n3 O1 d ^0 C

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

$ g' r% h0 h- N6 \; Z

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

. v" S$ W) U0 C

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

1 n4 `8 w# L6 s J4 M Y+ ]6 ~

6 J1 p: `/ c$ ^" U4 z

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

% Y/ @8 W0 |2 l' f2 V

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

# V( \9 g9 G( |5 }2 C; q n

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

0 V* D7 I( Z& z$ }4 o! y Y

就表明不是合法的数字

9 ?5 _( C, k1 M+ ]; f& s* f, }+ h

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

; E7 @; _; X& |9 O5 a8 w1 x3 E

* ~; ? i* Y" z! y( q- J& p" d. _

try

/ ~2 [; V% C; U" A

{

: Q" l! y+ M6 } v& g

Edit1->Text.ToDouble();

" C; g2 W. c# w

try

" {( K3 b6 g7 y

{

$ f. e* C+ t, s3 g( ?0 l

Edit1->Text.ToInt();

7 l% K8 k2 M' n- U

ShowMessage("is a int");

i ]: B: m7 ] b; E; ^' ~ ?

}

2 b, p7 J( l3 i/ U3 {

catch(const EConvertError &e)

& h/ r: V) K7 _! |

{

; s _- _! S+ F9 ]; F4 x

ShowMessage("is a double");

i9 h: Q" h* y, C

}

' p" U T/ {7 T7 \, B. e. |: ~

}

! @' O% S8 f4 g

catch(const EConvertError &e)

' U$ k/ g2 K* ]6 O; {

{

3 F1 Q6 A2 V \

ShowMessage("not a int ot double");

3 A8 q. _2 M( `. v3 a5 t' u

}

' m% S3 d! P* q& Q( G

; G+ F0 q) }' ^% S/ \

上面的代码已通过调试

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

回顶部