有沒有測試數字的函數 ? |
尚未結案
|
vernon
一般會員 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
vernon
一般會員 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
vernon
一般會員 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
做了個測試, 但不行呢~ s:='a';
try
strtofloat(s);
ShowMessage('True');
except
ShowMessage('False');
end; 彈出下面 Error Message :
Project Project1.exe raised exception class EConvertError with message "a'is not a valid floating point value'. 我是用 Delphi 7 的, 為什麼會這樣 ?
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
其實有一個程序可以完成你的需求,範例如下:
var s : string; Num, RetCode: Integer; begin s := 'asa'; Val (s, Num, RetCode); if RetCode <> 0 then ShowMessage('False') else ShowMessage('True'); end;ps : Val 詳細用法請看 Help < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif"> |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
引言: 做了個測試, 但不行呢~ s:='a'; try strtofloat(s); ShowMessage('True'); except ShowMessage('False'); end; 彈出下面 Error Message : Project Project1.exe raised exception class EConvertError with message "a'is not a valid floating point value'. 我是用 Delphi 7 的, 為什麼會這樣 ?使用 try .. except, 但在 IDE 內會跳出 Exception 訊息是正常的 只要直接執行 exe 檔就不會 若不想在 IDE 內跳出 Exception 訊息 在 Project -> Debugger Options 的 Language Exceptions 頁中 底下有個 Stop on Delphi Exceptions 的 CheckBox 取消即可. --- 每個人都是一本書 |
vernon
一般會員 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
vernon
一般會員 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
|
bundur
一般會員 發表:16 回覆:44 積分:22 註冊:2002-11-30 發送簡訊給我 |
引言: hagar, 你真是很棒呢~ 根本上我遇到的問題你都能夠完全明白並給予簡潔的答案, 十分感謝您~ >>< face="Verdana, Arial, Helvetica"> 更简单的: var TestInt: integer; begin if TryStrToInt('35434', TestInt) then ShowMessage('true') else showMessage('Fals'); end; 其实 有很多转换函数都有相应的 Try... 函数的 ==================== 交流是进步的良师 批评是成长的益友 |
star
初階會員 發表:37 回覆:93 積分:36 註冊:2002-07-18 發送簡訊給我 |
|
jcl
一般會員 發表:1 回覆:1 積分:0 註冊:2003-09-18 發送簡訊給我 |
我想給你們一個叫複雜的範例...每一個TEdit都可以用同一個Event喔 //保留0,1,2,3..9, 小數點 , 還有 chr(8)=Delete , chr(46)=BackSpace , 其他都不欲理會 !
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((Key<'0') or (Key>'9') or (Key>'.')) and (Key<>chr(8)) and (Key<>chr(46)) then
abort;
end; procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Sender.ClassType = TEdit then
(Sender as TEdit).Text := CheckNum((Sender as TEdit).Text,-1); //取到小數第一位 end; use math;
//檢查數字(要檢查的數字文字,要四捨五入到第幾位)
Function TForm1.CheckNum(Const SourStr:string;To45 : integer):string;
var
NumF : string
begin
SetRoundMode(rmDown); //要四捨五入
try
NumF := FloatToStr(SimpleRoundTo(StrToFloat(trim(SourStr)),To45));
Result := NumF;
Except
on EconvertError do
begin
if length(trim(SourStr)) >0 then
MessageDlg(pchar('不合法的數字格式!'), mtinformation, [mbok], 0);
Result := '0';
end;
end;
end;
|
tgho
一般會員 發表:3 回覆:14 積分:8 註冊:2003-03-18 發送簡訊給我 |
您是不是在debug的模式下Run程式
直接執行就不會了
引言: 做了個測試, 但不行呢~ s:='a'; try strtofloat(s); ShowMessage('True'); except ShowMessage('False'); end; 彈出下面 Error Message : Project Project1.exe raised exception class EConvertError with message "a'is not a valid floating point value'. 我是用 Delphi 7 的, 為什麼會這樣 ? |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |