代わりにdouble
(またはfloat
)を使用することの3つの利点を挙げられdecimal
ます:
しかし、これらの利点は、モデリングソフトウェアに見られるような、計算集約型の操作にのみ適用されるようです。もちろん、財務計算などの精度が必要な場合は、doubleを使用しないでください。それで、「通常の」アプリケーションの代わりにこれまでに選択double
(またはfloat
)する実際的な理由はありdecimal
ますか?
追加するために編集:すべての素晴らしい応答をありがとう、私はそれらから学びました。
もう1つの質問:doublesは実数をより正確に表すことができると指摘した人もいます。宣言されたとき、私はそれらが通常より正確にそれらを表すと思います。しかし、浮動小数点演算が実行されると、精度が(場合によっては大幅に)低下する可能性があるというのは本当のことですか?
あなたは利点をかなりうまくまとめたと思います。ただし、1つのポイントが欠けています。このdecimal
タイプは、基数10の数値(たとえば、通貨/財務計算で使用される数値)を表す場合にのみより正確になります。一般に、このdouble
タイプは、少なくとも同じくらいの精度(間違っている場合は誰かが私を訂正する)と、任意の実数に対して間違いなくより速い速度を提供します。簡単な結論は次のとおりです。どちらを使用するかを検討するときは、提供される精度double
が必要でない限り、常に使用してください。base 10
decimal
編集:
操作後の浮動小数点数の精度の低下に関する追加の質問に関しては、これはもう少し微妙な問題です。実際、精度(ここでは精度と同じ意味でこの用語を使用します)は、各操作が実行された後、着実に低下します。これは2つの理由によるものです。
いずれの場合も、理論的には同等であるはずの2つの浮動小数点数を比較する場合(ただし、異なる計算を使用して到達した場合)、ある程度の許容誤差を許容する必要があります(変動は大きいが、通常は非常に小さい)。 。
精度のエラーが発生する可能性がある特定のケースの詳細な概要については、ウィキペディアの記事の「精度」セクションを参照してください。最後に、マシンレベルでの浮動小数点数/演算について真剣に詳細な(そして数学的な)議論が必要な場合は、よく引用される記事「すべてのコンピューター科学者が浮動小数点演算について知っておくべきこと」を読んでみてください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加