1

時間の経過に伴う露出 (火など) のある材料の温度分布を計算するアプリケーションを作成しようとしています。

次に、マテリアルのジオメトリにヒート マップとして結果を描画する必要があります。

ここで、すべての計算と描画に一般的に Decimal または Double を使用する必要があるかどうか疑問に思います。私は両方を調べましたが、どちらを使用するかはまだわかりません。

経時的に補間された値を含め、値を比較する必要があります。そして、私が理解している限りでは、不正確な表現による比較の問題があります。しかし、10 進数は扱いが重いです。

私は double のみに傾いていますが、同時に、より正確な表現と比較にも多くの価値があります。

4

1 に答える 1

2

10 進数の有限表現には、有限 2 進数表現と同じ「不正確な表現」の問題があります。すべての実数を有限空間で表現できるわけではなく、基数 10 を使用しても役に立ちません。

Decimal は、同じビットをあまり効率的に使用しないだけです — 物理シミュレーションの表現について話すとき。一方、10 進数の特定の実装では、より多くのビットを使用できる場合がありますが、多精度の 2 進浮動小数点の実装も利用できます。

10 進浮動小数点ライブラリは 0.1 から始まる 10 進数を正確に表すことができるため、10 進浮動小数点ライブラリは何らかの理由で「不正確」ではない、または「比較の問題」がないという迷信が広まっています。シミュレーションに 10 の累乗の係数が含まれる場合、10 進数が適切です。それ以外の場合、decimal は、数値の連続範囲の有限表現に固有の問題を解決しません

于 2012-12-08T12:21:30.337 に答える