2016-11-05 11 views
0

DOUBLEの値に対していくつかの演算を実行した後、結果は1.9999999999999998ですが、期待される結果は2となります。エッフェルでの実数型の精度の設定

これは、浮動小数点演算の不正確さが原因であることがわかりました。私は2桁の精度しか必要としません(DOUBLEタイプを使用しています)ので、数値が2桁に四捨五入される場合は、結果が2と予想されます。

私はthis質問を見ましたが、2桁の数字しか表示されませんが、2桁の精度で値を四捨五入して保存する方法があるかどうかを知りたいと思います。

ありがとうございます。

答えて

1

DCMゴボライブラリ(contrib下で標準EiffelStudio分布に含まれる両方) - 指定された精度で数値を格納および操作するように設定することができるクラスDECIMALMA_DECIMALを提供します。ただし、ここでの精度は、小数点以下の桁数ではなく、有効桁数の合計です。小数点の後に指定した桁数が必要な場合は、代わりに適切に位取りされた整数型を使用します。

+0

ありがとうございます。クラスの使い方を教えてください。 '' DECIMAL'から継承しようとしたときに、 "エラー:型が未知のクラスに基づいています"と書かれています。 – GoodDeeds

+0

対応するライブラリをプロジェクトに追加する必要があります(例:[チュートリアルビデオ](https://www.youtube.com/watch?v=rfXKFIPFdw8)の2番目の部分を参照)、ライブラリのリストには'decimal'としてリストされています。また、 'DECIMAL'は' REAL_64'/'DOUBLE'の代わりに使用されるため、継承されるのではなく、サプライヤとして使用されることに注意してください。 –

関連する問題