Microsoft Access Club >AccessTips >このページ >次頁 < 前項  サイト内検索


小数点以下の不具合について:AccessTips050



これは、不具合ではなく考え方、またはコンピュータが持つ宿命なのかもしれません。または、 Accessは日本製ではなく、アメリカのMicrosoft社で開発されたもの故、小数点以下の細かいことについては、アバウトなのかもしれません。

皆さん方も、小数点の数字を整数に丸める際、「あれ?」と思われたことも数多くあるでしょう。

事例の検証

今回、 Accessフォーラムで以下の投稿がありました。

Access97で(2000でも)小数点の数値の計算がおかしくなるのですが、例えば、デバックウィンドウで「?int(2261.49*100)」とやってみてくだい。226149が正しい答えになるとおもうのですが、実行結果は、「226148」となります。…

至極ごもっともな話です。しかし、根本的な解決はできません。これはAccessの仕様の問題だからです。どのPCでも、int(2261.49*100)=226148 となります。

イミディエイトウィンドウ

しかし、下記の図を見て下さい。イミディエイトウィンドウでは、2種類のテスト結果が出ています。

?testrun_1 では、226149

?testrun_2 では、226148

  1. ?testrun_1では、数値(a,2261.49)を"通貨型"としています。
  2. ?testrun_1では、数値(a,2261.49)を"倍精度浮動小数点数型"としています。
通貨型

データを通貨型と定義すれば、正しい結果となります。通貨型の計算は、正しい数値を返しますので、お金の計算だけではなく、正しい計算を行いたい場合にも使うデータ型なんです。

通貨型とは、整数形式で表され、10,000 倍されて整数として記憶された、15 桁の整数部分と 4 桁の小数部分を持つ固定小数点数です、と定義されています。

関連ページ

 2001/06/06

ページの先頭へ 前ページへ戻る


小数点以下の不具合について:AccessTips050


 

-Microsoft Access Club-