QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

2 W7 r% v! E% J5 ~" }3 k7 W

在onKeyPress事件中作一些处理

; N& L( ?: _. b6 \ G0 `

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

D( z* }" }. f

: R, Z1 ]5 b$ X1 L5 E, j

然后设置相应的标志。

2 I4 Q2 S1 C3 ^6 F! u( H% J

+ T1 n3 Y$ h M7 e

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

% ^: T& A( R) Y$ ?9 e- T: M

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

6 K" d/ ?" E0 o

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

" G1 H7 _4 u/ }3 X* i6 H

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

L; Q/ |7 x7 c# }! L U: g2 y7 Z

; p1 Z# n( X, ~( J& A( z# [

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

/ J3 T( g3 R3 g3 `: B

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

h% c+ _' b3 q

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

* G, ?# \! [' g2 z* C B

就表明不是合法的数字

) J' h: A3 |! Q3 A. e- X& J/ ~

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

3 A& e/ g) H6 Q$ B

* d; |6 p0 S5 K5 N

try

5 ]- d1 K' J Y( C$ N) \& X

{

, X! ~5 g& H. j* s- G8 e. z

Edit1->Text.ToDouble();

. e; X$ d) }; n) b9 b

try

2 Z+ f7 ?2 B/ F) I+ o: H

{

# F4 X& {6 N- [( c. H5 D% p w

Edit1->Text.ToInt();

4 B8 P' b2 Q) u. s! M- {2 H

ShowMessage("is a int");

0 u( V6 Y: X# v

}

4 n' q( _ `+ w7 d& x

catch(const EConvertError &e)

+ R" M# O3 R! W$ u# n

{

' `! R, {! p; o7 T- t

ShowMessage("is a double");

7 w5 j* P4 p$ H1 s4 R# L

}

7 d) h& S# ^2 f$ Z) P( R, G

}

% k4 U) |, }* R1 ^$ A+ V1 |" k

catch(const EConvertError &e)

Y) K( g% E+ ^1 l

{

: d3 D- a- ~: O- ?" F

ShowMessage("not a int ot double");

4 v1 A. Y6 J& c3 {4 a+ h

}

* Q$ V( o" S1 r) h, q( a3 N

5 B1 Y: ?! ?8 Q5 f3 ~& y

上面的代码已通过调试

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:34 , Processed in 0.411722 second(s), 51 queries .

回顶部