全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1735
推到 Plurk!
推到 Facebook!

請問一下如何在輸入資料到資料庫時先把所輸入的資四捨五入

答題得分者是:Mickey
black_eagle1028
一般會員


發表:8
回覆:7
積分:3
註冊:2007-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-14 15:10:16 IP:210.68.xxx.xxx 訂閱
請問一下, 我利用 DBGRID 連結資料庫, 但是希望使用者在輸入 item_p 這個欄位時不管他輸入的數值為何, 都可以將他四捨步入後再寫入資料表, 所以我便在這個 itemp_p 的onValidate 中加入下面的程式碼作為轉換四捨五入的部份, 但是這樣會無窮迴圈耶!請問各位先進有無更好的方法, 謝謝!    <textarea class="delphi" rows="10" cols="60" name="code"> item_p := itemQueryitem_p.asfloat ; item_ps := format('%.2f',[item_p]); itemQueryitem_p.asstring:= item_ps; </textarea>
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-14 16:10:02 IP:218.163.xxx.xxx 訂閱
你好:

建議你...改用 OnSetText Event.
black_eagle1028
一般會員


發表:8
回覆:7
積分:3
註冊:2007-05-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-14 16:22:59 IP:210.68.xxx.xxx 訂閱
不行耶!這樣根本無法讀到我所輸入的新數字, 他還是會抓到原本資料庫中的數字

而且很奇怪, 我是用 access 且欄位的型態為單精數, 當我輸入12.11 時 grid 上會顯示 12.1099996566772

但事實上資料庫中還事 12.11

很困擾????
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-14 16:33:30 IP:218.163.xxx.xxx 訂閱
參考參考:

procedure TForm3.ClientDataSet1ClientDataSet1Field1SetText(Sender: TField;
const Text: string);
begin
Sender.AsString := Format('%.2f',[StrToFloatDef(Text,0)]);
end;

相對的 OnGetText Event....可以拿來 Format 出你要顯示的 Text
boson
中階會員


發表:74
回覆:155
積分:85
註冊:2004-07-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-14 23:12:33 IP:220.134.xxx.xxx 訂閱

===================引 用 black_eagle1028 文 章===================
請問一下, 我利用 DBGRID 連結資料庫, 但是希望使用者在輸入 item_p 這個欄位時不管他輸入的數值為何, 都可以將他四捨步入後再寫入資料表, 所以我便在這個 itemp_p 的onValidate 中加入下面的程式碼作為轉換四捨五入的部份, 但是這樣會無窮迴圈耶!請問各位先進有無更好的方法, 謝謝! <textarea class="delphi" rows="10" cols="60" name="code"> item_p := itemQueryitem_p.asfloat ; item_ps := format('%.2f',[item_p]); itemQueryitem_p.asstring:= item_ps; </textarea><br />
你把以上三行程式擺在 onValidate 事件中, 當然會造成無窮迴圈,
因為 onValidate 執行到上面第三行時, 你將值再指定給欄位, 又會再觸發 onValidate 一次,
於是就變成無窮迴圈了

如果把這三行放到 BeforePost 事件中, 應該就 Ok 了
系統時間:2024-06-23 10:24:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!