top of page
beginners53

Accessあるある

昔からよく言われているのですが、項目や変数のタイプを倍精度浮動小数点にすると、勝手に誤差が生じるという現象が起こります。

例えば、下の図のように「9.7」と入力したのに「9.69」になってしまうとか・・・。

酷いものでは「普通に整数で”2”って入れたのに”1.9999・・・”ってなってる!!」って事も・・・しかも画面表示を整数にしていると少数以下が四捨五入されて表示されるので計算結果を見るまで気づかないとか(ーー;;

これって、Accessに限らず、Visual Basicなどの言語を使っても発生しているのでたぶん、Microsoftが作成するOS上で動作するアプリケーション全般に発生するバグなんだと思いますが、一向に修正される気配がない。

これを回避するためには、変数や項目のタイプを数値型ではなく通貨型に設定するしかないようです。

ただ困ったことに、通貨型では小数点以下の桁数は4桁までという制限があるのでより精度の高い計算結果を求めたい算術計算や技術計算などには使えないという面はあります。

この場合は、倍精度浮動小数点を使用するしかないのですが、誤差があっては使い物にならない・・・堂々巡りになってしまいそうです(^^;;


閲覧数:8回0件のコメント

最新記事

すべて表示

ADOの64bit対応

VBAでアプリケーション作成する際、自分はADOはあまり使わず、DAO主体でコードを作成するのですが、他人が作ったプログラムをメンテナンスするとたまにADOで作成されているプログラムに遭遇します。 今更なのですが、これまで32bit環境で動作していたVBAアプリケーションを...

Comments


bottom of page