在onKeyPress事件中作一些处理
9 P" t6 ]1 j0 K使得输入只能是数字和一个小数点
然后设置相应的标志。
7 Y+ ~. F* w9 D* I5 D8 q
当然,还有另外的办法,就是用pos函数来查找是否有小数点
如果没有,那么就是整数,反之是小暑,但是这个方法有一个缺陷
就是如果输入的不只是数字,还有字母的话,那么判断显然是错误的。
) d3 t0 o* Y7 u! C/ U0 ~此外,如果是以指数方式表示的,那么前两种的判断方法都会复杂起来。
于是,还有第三个办法,用好Exception
首先,用Edit1->Text.ToInt,如果不产生异常,表明是整数,反之用
+ r7 x3 ^3 ?/ m- V& h5 fEdit1->Text.ToDouble,如果不产生异常,那么是小数,反之
就表明不是合法的数字
这个办法最方便。大概的程序代码如下
try
{
Edit1->Text.ToDouble();
try
{
5 J4 P4 H0 Y, R5 ~Edit1->Text.ToInt();
1 J7 \1 y& g p* w8 I9 J1 HShowMessage("is a int");
" T r$ L6 c$ G9 l}
2 @% E7 G: a# y. Wcatch(const EConvertError &e)
{
ShowMessage("is a double");
}
# ], N0 M' n& N1 C g, O}
: x# ]3 F( D4 v; fcatch(const EConvertError &e)
{
ShowMessage("not a int ot double");
}
( ^) H* Z) W3 ~# r( K* r' F9 O
上面的代码已通过调试
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |