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

ADOQuery 小數位數被截斷為4位

缺席
deanma
一般會員


發表:4
回覆:6
積分:2
註冊:2009-08-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-08-20 17:16:40 IP:59.125.xxx.xxx 訂閱
各位好,目前小弟在撰寫程式的時候遇到一個ADOQuery會截斷到小數4位的問題,
寫法如下:
Query_CosU.FieldByName('UnitP').AsString := FloatToStrF(xUnitP,ffFixed,16,8);
xUnitP的數值為0.86666666666
FloatToStrF(xUnitP,ffFixed,16,8) 顯示為0.86666667
Query_CosU.FieldByName('UnitP').AsString 卻顯示為 0.8667
爬文過論壇上的文章有提到將ADOQuery的EnableBCD設為False,但仍然無效!
不知道各位是否有其他的解決方式,謝謝!

Delphi 7 MS SQL 2008
該資料欄位型態為decimal(16,8)

--------------------------------
2009/10/23 更新
此問題在Delphi 7 ADO元件上應該是無解了,
最後我只好將資料庫的欄位型態改成float...
編輯記錄
deanma 重新編輯於 2009-10-23 15:36:41, 註解 無‧
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-08-20 17:33:41 IP:60.248.xxx.xxx 未訂閱
請檢查欄位編輯器裡該欄位precision屬性是否有設足夠小數位數?
deanma
一般會員


發表:4
回覆:6
積分:2
註冊:2009-08-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-08-20 17:47:08 IP:59.125.xxx.xxx 訂閱
你好:
precision:16
size:8
===================引 用 pedro 文 章===================
請檢查欄位編輯器裡該欄位precision屬性是否有設足夠小數位數?
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-08-20 18:13:09 IP:60.248.xxx.xxx 未訂閱
sql server 是 decimal(16,8)型態
UnitP在delphi宣告是什麼型態?
如果是float型態,size是0不可變動,字串型態,就要再看displaywidth
目前想到是這樣
deanma
一般會員


發表:4
回覆:6
積分:2
註冊:2009-08-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-08-20 18:24:57 IP:59.125.xxx.xxx 訂閱
你好:
xUnitP我宣告為double,
另外我是在debug的時候去看他的值,就被截掉了!(displayWidth:17)
謝謝!
===================引 用 pedro 文 章===================
sql server 是 decimal(16,8)型態
UnitP在delphi宣告是什麼型態?
如果是float型態,size是0不可變動,字串型態,就要再看displaywidth
目前想到是這樣
BOSS
中階會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-08-20 23:06:04 IP:123.194.xxx.xxx 訂閱
將adoquery 的enableBCD屬性設成false
deanma
一般會員


發表:4
回覆:6
積分:2
註冊:2009-08-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-08-21 09:16:14 IP:59.125.xxx.xxx 訂閱
你好:
我確實有試過將EnableBCD的屬性設為False,但仍然無效!
我剛剛測試若將UnitP的資料庫資料型態給為Float 數值就不會截斷,
但與decimal 同類型的numeric也是一樣會有被截斷的問題,
不知道是否是Delphi針對精準位數的資料型態都有這樣的錯誤?

===================引 用 BOSS 文 章===================
將adoquery 的enableBCD屬性設成false
系統時間:2024-04-20 8:49:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!