線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3066
推到 Plurk!
推到 Facebook!

資料庫應用~小數點、無條件捨去之問題

答題得分者是:Stallion
monok
一般會員


發表:1
回覆:2
積分:0
註冊:2004-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-03 14:56:51 IP:59.104.xxx.xxx 訂閱
各位前輩好~小弟有一個資料庫的問題找不到解決方法,麻煩前輩們幫忙看看,謝謝

目前DB中有一欄位是存進貨價錢(money型態),這欄位的值是程式經由單價、數量運算而來的,數值是到小數第三位

現在我想要顯示DBGrid上時,只show出到小數第二位,並且不能四捨五入,需要無件條捨去

請問一下有什麼方法可以達成嗎?謝謝大家
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-03 22:16:26 IP:211.22.xxx.xxx 未訂閱
在DBGrid的OnDrawColumnCell裡面加入下面程式碼看看。 <textarea cols="60" rows="10" class="delphi" name="code"> var aFloatStr:String; begin if SameText(Column.FieldName, '選擇顯式的欄位名稱') then begin aFloatStr := Format('%.2f',[Column.Field.AsFloat]); DBGrid1.Canvas.FillRect(Rect); DBGrid1.Canvas.TextRect(Rect, Rect.Left 2, Rect.Top 2, aFloatStr); end; end; </textarea>
monok
一般會員


發表:1
回覆:2
積分:0
註冊:2004-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-03 22:51:05 IP:59.104.xxx.xxx 訂閱
嗯!明天到公司會馬上試看看~感謝您
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-05 00:12:38 IP:211.76.xxx.xxx 訂閱
<textarea class="delphi" rows="10" cols="60" name="code"> function TForm1.Round45(Val: Extended; Digit: ShortInt; tp: byte): Extended; var Sign: ShortInt; Tmp, LFractor: Currency; begin if Val >= 0 then Sign := 1 else Sign := -1; LFractor := Power(10, Digit); Tmp := Val * LFractor; if tp=0 then //四捨五入 begin if Tmp - Round(Tmp) = 0.5 * Sign then Tmp := Tmp 0.01 * Sign; Tmp := Round(Tmp); end else if tp=1 then //無條件捨去 Tmp := Int(Tmp) else if Tmp-Int(Tmp)<>0 then //無條件進位 Tmp := Int(Tmp) 1 * Sign; Result := Tmp / LFractor; end; 再套用Stallion大大的程式 var aFloatStr:String; Tmp: Extended; begin if SameText(Column.FieldName, '選擇顯式的欄位名稱') then begin //aFloatStr := Format('%.2f',[Column.Field.AsFloat]); Tmp:=Round45(Column.Field.AsFloat,2,1); DBGrid1.Canvas.FillRect(Rect); DBGrid1.Canvas.TextRect(Rect, Rect.Left 2, Rect.Top 2, FloatToStr(Tmp)); end; end </textarea>
monok
一般會員


發表:1
回覆:2
積分:0
註冊:2004-06-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-05 00:42:34 IP:59.104.xxx.xxx 訂閱
謝謝各位前輩~問題已經解決了唷!
系統時間:2024-05-18 17:33:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!