QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

5 N% H0 s. {9 c0 @7 B# h4 h% Q8 T

在onKeyPress事件中作一些处理

- S/ X: ~; O- p' p

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

6 o- J' C* K) A0 }$ \

: J; J4 [, z7 F1 l- K

然后设置相应的标志。

" i3 b W* `9 Z2 t0 S

( ^5 @9 j/ h2 U5 h! ~

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

( z; n3 Y9 T- R8 l+ A4 o5 _

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

. Y* B* Y$ c. t9 _2 I

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

6 I! [- `: K r/ f: b/ k# C

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

( N! z/ |7 q( t6 F8 v% P

* N7 B# z3 b" q8 X# G, v

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

, n% s4 r M% y8 N1 w, R5 t

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

+ Z- J4 J# ~) ]# C4 R4 ]

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

0 q; E6 ~# J9 i" p3 g

就表明不是合法的数字

% l; H& q% @5 b7 A O

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

, W2 r& T6 c) s6 J% }" C6 Q

/ i! M$ }6 X6 n, e, [

try

+ x! S* P1 y# y; `7 A

{

" ~- O6 K2 D- q! L) \" _

Edit1->Text.ToDouble();

2 n6 H% l# r3 `* c3 g% T ~# p

try

- s1 @& V1 O4 |3 f' `( @* ]4 r

{

; B2 ]# [8 i* H2 u4 k% h+ G2 `

Edit1->Text.ToInt();

: N. P5 H$ @7 m

ShowMessage("is a int");

! K2 v" X9 ^8 L$ z( A& D: g! @

}

8 w, u' U% D* |$ f+ Z) p

catch(const EConvertError &e)

" \5 X# v& O9 m( V! M

{

' Z4 a& P, f( [9 B

ShowMessage("is a double");

, S! u( @; S7 Q$ X, n' N/ F

}

) p9 D5 V& m: r$ G' D

}

. H; S0 S) {* b6 x( r; @

catch(const EConvertError &e)

- B4 a) ^: G* h) x* Z

{

: n, Z* N6 y# i2 |" _

ShowMessage("not a int ot double");

4 w* g- ^5 @7 N% U' V0 x1 _

}

" r3 W$ J n( [ V J( U

7 M2 Y5 |0 w& d1 D4 \% g

上面的代码已通过调试

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

回顶部