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

小数点后保留位数的补足问题

尚未結案
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-17 08:57:41 IP:218.72.xxx.xxx 未訂閱
各位高手: 小弟有一问题,我把小数点后保留两位,希望格式是0.00,但当少于两位的数时,如1.1不能显示为1.10,这有办法解决吗? 我code是这样定义的: query1.sql.add('[jje] [decimal](28, 2) NULL ,'); 我用delphi 和sql server 不胜感激!
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-17 09:09:54 IP:211.22.xxx.xxx 未訂閱
您好:
Var
  AA:String;
begin
  AA:= Formatfloat('0.00',1.1);
  Showmessage(aa) ;
~~應無所住而生其心~~
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-17 09:34:15 IP:210.65.xxx.xxx 未訂閱
Hi:    還有一個方式,直接在 DataSet 的欄位中定義該欄位 DisplayFormat 為 0.00 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-17 11:46:14 IP:218.72.xxx.xxx 未訂閱
您好! 能写一行具体的样本code吗?我主要是用在table或dbgrid栏位中的,而在table和dbgrid裡面沒有displayformat可以讓我設 另外,能否知道在sql的table中是如何定义的呢? thank you! 發表人 - luowy651 於 2004/01/17 12:23:34
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-17 14:50:53 IP:211.22.xxx.xxx 未訂閱
引言: Hi: 還有一個方式,直接在 DataSet 的欄位中定義該欄位 DisplayFormat 為 0.00 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 -------------------------------- < face="Verdana, Arial, Helvetica"> 好像ADO才有DisplayFormat如果你要秀在dbgrid裡面 還是DisplayFormat比較方便 BDE的話我就不知道該怎ㄇ處理,若一定要用BDE只好請其他高手幫忙 sql的table就如你設定的阿[decimal](28, 2) 不過需要那ㄇ多位數ㄇ ~~應無所住而生其心~~ 發表人 - Terrychen 於 2004/01/17 14:51:51
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-17 15:35:13 IP:203.204.xxx.xxx 未訂閱
引言: 您好:
Var
  AA:String;
begin
  AA:= Formatfloat('0.00',1.1);
  Showmessage(aa) ;
~~應無所住而生其心~~
請改為'#'號
Var
  AA:String;
begin
  AA:= Formatfloat('0.##',1.1);
  Showmessage(aa) ;
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-17 15:56:36 IP:218.72.xxx.xxx 未訂閱
引言: 好像ADO才有DisplayFormat如果你要秀在dbgrid裡面 還是DisplayFormat比較方便 BDE的話我就不知道該怎ㄇ處理,若一定要用BDE只好請其他高手幫忙 sql的table就如你設定的阿[decimal](28, 2) 不過需要那ㄇ多位數ㄇ ~~應無所住而生其心~~ 發表人 - Terrychen 於 2004/01/17 14:51:51
按我的sql方法设定就是如“1.1”不能显示“1.10”,而我希望此时能显示“1.10” 在bde 下无法实现吗?看来我要把我的bde转到ado上去了。 發表人 - luowy651 於 2004/01/17 16:06:33
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-01-17 16:28:01 IP:211.76.xxx.xxx 未訂閱
還有一招,用滑鼠dblclick dataset元件(不管是bde或是ado),在欄位檢視器裡面選擇該筆欄位(如果沒有請按滑鼠右鍵 add all fields),在該筆欄位的ongettext事件,寫程式碼設定,這樣也可以達成你的目的...
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-01-17 16:38:08 IP:218.72.xxx.xxx 未訂閱
引言: 還有一招,用滑鼠dblclick dataset元件(不管是bde或是ado),在欄位檢視器裡面選擇該筆欄位(如果沒有請按滑鼠右鍵 add all fields),在該筆欄位的ongettext事件,寫程式碼設定,這樣也可以達成你的目的...
您好! 我只用到了datasource,table,query,dbgrid四个元件,如何写,能写一段样板code吗? thank you very much! 發表人 - luowy651 於 2004/01/17 16:43:07
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-01-17 16:46:38 IP:211.76.xxx.xxx 未訂閱
就知道你要程式碼    其實 把 terrychen 的    
    Var
  AA:String;
begin
  AA:= Formatfloat('0.00',1.1);
  Showmessage(aa) ;    
改一改就可以了 ongettext事件有 sender:tfield的參數 你把 sender.value的值做運算就好了 請自己試試 不難 或是其他大大也可以幫忙寫寫程式碼給luowy651同學看看
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-01-17 17:04:52 IP:61.221.xxx.xxx 未訂閱
您好: 參考http://delphi.ktop.com.tw/topic.php?topic_id=22344    今天一直在試hahalin所說的ongettext事件 終於試出來了 ~~應無所住而生其心~~
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-01-19 14:31:33 IP:210.65.xxx.xxx 未訂閱
Hi:    luowy651,不管是 BDE 或是 ADO 甚至是 ClientDataSer 都有 DisplayFormat,不過先決條件是該欄位 type 為數字(Integer,Float,Word...皆可)    除非你將該欄位轉換為 String,否則基本上 DataBase 中,是不會去幫你補足 0,[decimal](28, 2)只會限制你的小數點尾數只儲存兩位    DisplayForm 的設定是在,TTable 或 TQuery 的 Field 下 1.先對 TTable 或 TQuery Double Click 2.再出現的欄位設定方框中,按下滑鼠右鍵,選擇 Add all fields 3.就你要的欄位設定 Display Format 為 0.00 即可 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-01-19 15:56:47 IP:218.72.xxx.xxx 未訂閱
fishman大大: thank you very much,设定方法我已知道,真是一语惊醒梦中人啊,终于可以了! 只是我入行较短,请问用程式码如何写? 發表人 - luowy651 於 2004/01/19 16:10:29
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-01-19 16:11:29 IP:61.221.xxx.xxx 未訂閱
您好:  
procedure TForm1.Query1sale_numGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  Text:= formatfloat('0.00',query1.fieldbyname('sale_num').AsInteger);
end; 
其餘對應欄位改成你要的就可以了 ~~應無所住而生其心~~ 發表人 - Terrychen 於 2004/01/19 16:12:53
系統時間:2024-06-29 16:59:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!