0 V) \3 Q! n5 B$ l! ?
在onKeyPress事件中作一些处理
使得输入只能是数字和一个小数点
! q0 H% f7 L# B5 {/ r7 r& Ap( Q# m) P! C# b) ?
然后设置相应的标志。
3 v8 p: w, F" A9 u0 s$ m
当然,还有另外的办法,就是用pos函数来查找是否有小数点
如果没有,那么就是整数,反之是小暑,但是这个方法有一个缺陷
& z2 F3 q4 r" n就是如果输入的不只是数字,还有字母的话,那么判断显然是错误的。
, L7 }% T8 H& H f% ] ^此外,如果是以指数方式表示的,那么前两种的判断方法都会复杂起来。
于是,还有第三个办法,用好Exception
- f$ Z# {+ J; ~% W7 a首先,用Edit1->Text.ToInt,如果不产生异常,表明是整数,反之用
Edit1->Text.ToDouble,如果不产生异常,那么是小数,反之
5 Q6 U. a' t( w# w+ |& F0 f就表明不是合法的数字
这个办法最方便。大概的程序代码如下
9 M# b8 r1 `) Q' G
try
{
7 R; S$ Y9 ]* F x; @Edit1->Text.ToDouble();
. G8 _6 D' ^3 z. n4 `7 ?try
3 ?- m% m4 T @1 x% o' U0 s% Y{
$ k) t0 W: @' _: p4 kEdit1->Text.ToInt();
ShowMessage("is a int");
- {. f. A5 ~4 h}
( k) P& Y q$ v( G/ i! e, }5 ]' Xcatch(const EConvertError &e)
{
ShowMessage("is a double");
}
7 |! R" ^. ` q4 [$ u9 m% f7 ]}
catch(const EConvertError &e)
{
& r2 z0 u& D% n! g5 V r' _ShowMessage("not a int ot double");
}
上面的代码已通过调试
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |