由小數點四位改為六位時 |
缺席
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
各位大大好:
我原本資料庫裡原先資料型態是decmail type 18 perscsion 4 後來改為 decmail type 18 perscsion 6 而我也參加之前大大們的文章 http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=36578 把ADOTable 的property-"EnableBCD" 設成 false 但我做下最運算時,DBGrid裡PriceU還是一樣只會顯現出四位而已 xPriceU:Double; xPriceU:=DM1.QtmpO.FieldByName('PriceU').AsFloat /(1 (Query_PUR510M.FieldByName('Tax').AsFloat * 0.01)) ; showmessage('xPriceU' floattostr(xPriceU)); 若是以8.95/1.17=7.64957264957265 Query_PUR510D.FieldByName('PriceU').AsString:=floattostrf(xPriceU,ffFixed,10,6); Showmessage(Query_PUR510D.FieldByName('PriceU').AsString); 結果在DBGrid卻是出現7.6496 |
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
可能是你選用 Double, Float 解析度的問題吧! 請改用 Currency 資料型態
請改以下紅色的部份看看 ===================引 用 monkeyhung 文 章=================== 各位大大好: 我原本資料庫裡原先資料型態是decmail type 18 perscsion 4 後來改為 decmail type 18 perscsion 6 而我也參加之前大大們的文章 http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=36578 把ADOTable 的property-"EnableBCD" 設成 false 但我做下最運算時,DBGrid裡PriceU還是一樣只會顯現出四位而已 xPriceU:Currency; xPriceU:=DM1.QtmpO.FieldByName('PriceU').AsCurrency /(1 (Query_PUR510M.FieldByName('Tax').AsCurrency* 0.01)) ; showmessage('xPriceU' CurrToStr(xPriceU)); 若是以8.95/1.17=7.64957264957265 Query_PUR510D.FieldByName('PriceU').AsString:=CurrToStr(xPriceU,ffFixed,10,6); Showmessage(Query_PUR510D.FieldByName('PriceU').AsString); 結果在DBGrid卻是出現7.6496
------
將問題盡快結案也是一種禮貌! |
JustinShen
中階會員 發表:22 回覆:104 積分:80 註冊:2003-09-20 發送簡訊給我 |
|
monkeyhung
一般會員 發表:51 回覆:55 積分:21 註冊:2006-12-16 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |