在onKeyPress事件中作一些处理
使得输入只能是数字和一个小数点
. z% t" l1 B; W7 C8 o( j" {. b$ [3 J `' Z ?/ v
然后设置相应的标志。
3 J( Y2 L; w8 {# E
当然,还有另外的办法,就是用pos函数来查找是否有小数点
3 c2 I0 A. b3 i4 b! X. h如果没有,那么就是整数,反之是小暑,但是这个方法有一个缺陷
" w. ?# o' m! p/ O就是如果输入的不只是数字,还有字母的话,那么判断显然是错误的。
此外,如果是以指数方式表示的,那么前两种的判断方法都会复杂起来。
& w5 P T4 `1 T a
于是,还有第三个办法,用好Exception
首先,用Edit1->Text.ToInt,如果不产生异常,表明是整数,反之用
5 Y& ]& U. `0 r8 }5 K& a7 jEdit1->Text.ToDouble,如果不产生异常,那么是小数,反之
就表明不是合法的数字
; w, v0 Q7 x4 a- G* w/ A* k这个办法最方便。大概的程序代码如下
try
{
- T5 U6 F! `& ]# |$ I1 L! K8 uEdit1->Text.ToDouble();
try
* G& e; g e3 `% S{
' s. P# N" {& _* q) Z, e7 DEdit1->Text.ToInt();
ShowMessage("is a int");
8 N) C6 T- z) K}
catch(const EConvertError &e)
{
; g" k! z3 K- F8 S# ]3 Y' h5 VShowMessage("is a double");
0 X. R4 }5 a- c( E}
* W- S3 H0 S+ H' w6 d/ r}
) W' A) N+ E. S9 Xcatch(const EConvertError &e)
8 u4 T& g3 e5 ~/ a{
) k" G1 k# g* Q' p; A& pShowMessage("not a int ot double");
}
% w$ q; V; z% j$ [$ \) g: t& ~* Y1 }) E+ D; j, C- v
上面的代码已通过调试
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |