accessのフィールドの取得について


岸田光明  2005-01-28 12:37:57  No: 12902

お世話になってます。

今回、ACCESSの単精度浮動小数点型のフィールドから
edit81.Text:=Query1.FieldByName('aaaa').AsString;
のようにして値を取得したのですが、ACCESSでは52.9になっているのに
delphiの方では、50.5999985のようになってしまいます。

os はXPで、delphiは7proを使っているのですが
このような場合どのような対処を取ればACCESSの表示どおりの値を
取得できるようになるでしょうか?

すいませんが、ご指導お願いいたします。


どら  2005-01-28 18:01:50  No: 12903

試していませんが単精度浮動小数点型のフィールドを
AsStringとするのはやめたほうがいいと思います。
edit81.Text := FloatToStr(Query1.FieldByName('aaaa').AsFloat);
としてはどうですか?


どら  2005-01-28 18:11:44  No: 12904

試してみましたが私の環境(Delphi5Pro,Win2000,Access2000,BDE接続)では
edit81.Text := Query1.FieldByName('aaaa').AsString;
edit81.Text := FloatToStr(Query1.FieldByName('aaaa').AsFloat);
のどちらも52.9000015258789と表示されますね。


@っしー  2005-01-28 19:57:35  No: 12905

edit81.Text := FormatFloat('0.#', Query1.FieldByName('aaaa').AsFloat);

とするか、Accessのフィールド型を倍精度にしてみる。

ほかにも、色々な方法があります。


岸田光明  2005-01-29 04:49:17  No: 12906

どらさん、@っしーさん、ご指導ありがとうございます。

早速試してみたいと思います。

いろいろ探しているうちに今度は
ACCESSのOLEオブジェクト型の画像を代入&取得する方法
が知りたくなってしまいました。

もし知っていましたら教えていただけると助かります。


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

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






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