QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

7 O3 a& T+ i6 E9 Y$ d& u$ a2 o2 X% ~

在onKeyPress事件中作一些处理

1 _7 X, K) z, y m/ A

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

|1 n6 n/ D, e: o1 k

( B- c8 a' z2 x0 O" Q+ ^- j! I& @

然后设置相应的标志。

/ Z0 m# L' C* I8 n. Y) F" j. I

" P: q# U2 F0 v1 U Y

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

' S/ _! ?4 _0 e. z8 p: F' K; D

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

% G) y; A5 R( ?: m

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

5 ?1 M: j7 j" k$ A7 K

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

# d* K# F: n f

5 H" b, O6 ^2 k5 x/ W

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

/ m% Y4 r0 \4 ~7 X' g2 }

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

8 R2 [4 X* i4 {% r

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

4 |4 k" I: l f; C2 q

就表明不是合法的数字

5 r9 v" i! T% T# n/ s) ?

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

( p$ `, I# H4 X

7 B$ y+ Z3 x7 x' @' C

try

7 @: v* V5 t2 w3 R: G+ o5 F

{

( w9 T4 c6 K0 k; c

Edit1->Text.ToDouble();

) Q# t" M4 c: r- J4 |$ ]

try

6 |8 a# i$ R5 L" K. H* L h

{

; q( o# D# r/ M$ D0 t

Edit1->Text.ToInt();

2 r4 g2 X l5 s& q

ShowMessage("is a int");

9 d. d6 Z" F' k5 z+ a. D* B1 M

}

$ ^0 V# O0 D D4 P

catch(const EConvertError &e)

8 e* M' Y- i: R' j( C! ~

{

# ]# `8 m& M# ^7 @0 z; S0 m+ i/ G

ShowMessage("is a double");

9 t/ g4 z7 v! t, ?4 P% J* [; a

}

+ l' i# x" O5 L- C' Q0 A

}

! D( R& L( j, ^) q# l! _: H

catch(const EConvertError &e)

- H0 O$ I( Y' @$ g+ l( f% G5 q

{

0 ]. ]: E6 h4 Q7 A5 |& H

ShowMessage("not a int ot double");

2 S( z& u" N0 q9 i, j# O

}

- ^5 h, v2 x1 E# j6 X' k9 S* H

1 q) {0 @* B4 x) p/ t2 r; v) e

上面的代码已通过调试

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 02:30 , Processed in 0.375574 second(s), 52 queries .

回顶部