FireDACでの編集時AsFloatで少数以下が丸まる

解決


グー助  2015-01-23 03:22:16  No: 47008

Windows8.1(64Bit)
Delphi  XE5 Update2
FireDAC = 9.0.1 (Build 63974)
Oracle  11g([11.2.0.1.0)
の環境で

項目名:TEST
データの型:  NUMBER(19,5)という項目を設定

FireDACのFDQueryを使用(FDQuery1)。

var
  dWork : Double;

  dWork := 9.12345;
その1
  FDQuery1.Edit;
  FDQuery1.FieldByName('TEST').AsFloat := dWork;

      TESTの内容は「9.1235」

その2
  FDQuery1.Edit;
  FDQuery1.FieldByName('TEST').AsFloat := FloatToStr(dWork);

      TESTの内容は「9.12345」

となります。

その1の場合に
小数点5桁以降が丸まってしまいます。
タの型:  NUMBER(19,6)としても同じです。

何か設定が有るのでしょうか?
解る方いらっしゃいますか?

デー


DEKO  URL  2015-01-23 04:07:50  No: 47009

まずは AsFloat ではなく AsExtended を使ってみてください。

AsFloat = Double
AsExtended = Extended

ですので。

但し 64bit アプリケーションでは Extended = Double となりますのでご注意下さい。
http://docwiki.embarcadero.com/Libraries/ja/System.Extended

それでもダメな場合には AsBCD と TBCD を使ってみてください。

http://docwiki.embarcadero.com/Libraries/ja/Data.DB.TField.AsBCD
http://docwiki.embarcadero.com/Libraries/ja/Data.FmtBcd.TBcd


グー助  2015-01-23 19:55:10  No: 47010

DEKOさん。
ありがとうございました。

AsBCDで上手くいきました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加