ROUNDDOWN 関数の結果が Excel (2000以降)と異なる場合がある
対象製品
El Tabelle Sheet 4.0J
詳細
数式機能において、小数点以下の値を含む計算を ROUNDDOWN 関数で実行すると、ROUNDDOWN 関数の結果が Excel (2000以降)と異なる場合があります。
具体的には
の結果が El Tabelle Sheet 4.0J では 32639 ですが、Excel (2000以降)では 32640 です。
この現象は ROUNDDOWN 関数内で Double 型のデータで計算を行っていることによるもので、Double 型が小数点以下のデータを厳密に扱えない仕様に起因します。これは Excel 95/97 でも同様に確認できます。
El Tabelle Sheet 4.0J と Excel で結果が異なるのは、Excel 2000 以降に ROUNDDOWN 関数に補正処理が組み込まれたためです。El Tabelle Sheet 4.0J では関数内の処理を Decimal 型で行うことにより、Excel と同じ結果を得ることができます。
製品に付属のサンプル(製品インストールフォルダ¥Samples¥Functions 内)に、この処理を使用したサンプルプロジェクト「Rounddown」が含まれています。
具体的には
=ROUNDDOWN(800*40.8,0)
の結果が El Tabelle Sheet 4.0J では 32639 ですが、Excel (2000以降)では 32640 です。
この現象は ROUNDDOWN 関数内で Double 型のデータで計算を行っていることによるもので、Double 型が小数点以下のデータを厳密に扱えない仕様に起因します。これは Excel 95/97 でも同様に確認できます。
El Tabelle Sheet 4.0J と Excel で結果が異なるのは、Excel 2000 以降に ROUNDDOWN 関数に補正処理が組み込まれたためです。El Tabelle Sheet 4.0J では関数内の処理を Decimal 型で行うことにより、Excel と同じ結果を得ることができます。
製品に付属のサンプル(製品インストールフォルダ¥Samples¥Functions 内)に、この処理を使用したサンプルプロジェクト「Rounddown」が含まれています。
キーワード
問題
この文書は、以前は次のFAQ IDで公開されていました : 8930