BCD 已經設定成了 false了。
資料庫中 欄位為 numeric 設定 位數是8
在資料庫中寫入 0.12321312341 但是在 dbgrideh中顯示 始終是4位 0.1232
輸入的時候 也會自動 轉換成4位的。
uj5u.com熱心網友回復:
http://bbs.csdn.net/topics/350153128uj5u.com熱心網友回復:
都試過了 還是沒有用
uj5u.com熱心網友回復:
碰到過類似問題,要自己修改DBGridEh原始碼uj5u.com熱心網友回復:
試一下DEV CXGIRD控制元件!
uj5u.com熱心網友回復:
重點還是測驗資料控制元件是否有8位小數DataSet.FieldByName('欄位名').AsString 顯示一下看看.
我測驗將ADODataSet1.EnableBcd 設定成了 false,不管用什么控制元件,都是可以正常顯示8位小數的!
uj5u.com熱心網友回復:
首先看看資料庫中的資料,如果都木有問題,如果影響不大就換個控制元件吧,不能讓這個小問題卡死了。uj5u.com熱心網友回復:
實在不行,先設定為字串,在另外一個地方轉換uj5u.com熱心網友回復:
重寫field的OnGetTextuj5u.com熱心網友回復:
dbgrid嗎?DisPlayFormat = 0.00000000
uj5u.com熱心網友回復:
如果還是不行,你看看你用資料庫軟體select 出來的是幾位?如果也是4位,那你肯定要改資料型別了。
改成dec型別的
uj5u.com熱心網友回復:
贊同,我在Delphi 7 + MS SQL 2000,不管是 Numeric(18,8)還是Decimal(18,8)都可在ADODataSet1.EnableBCD為False時,DBGrid,DBEdit,DBGridEh都能正確顯示出8位小數。
uj5u.com熱心網友回復:
資料庫里是8位的。
uj5u.com熱心網友回復:
我的是displayformat=‘0.0000########’;
但是該對應列仍然在倒數第二位四舍五入,
uj5u.com熱心網友回復:
最實用的方法是在Field.OnGetText事件中進行處理里面的TEXT回傳給控制元件就可以了
但要注意,如果處理了,有可能看到的和實際數值有偏差
access資料庫不能建DECIMAL欄位,只有FLOAT欄位,所以,ACCESS資料庫要在OnSetText把精準的資料寫進資料庫才可以
SQL SERVER就不存在這個問題
uj5u.com熱心網友回復:
DisPlayFormat = 0.00000000uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/98950.html
標籤:數據庫相關
