1. ホーム
  2. .net

[解決済み] .NETでのdecimal, float, doubleの違い?

2022-03-16 06:50:27

質問

とはどのような違いがあるのでしょうか? decimal , floatdouble .NETで?

どのような場合に使用するのでしょうか?

解決方法は?

floatdouble フローティング バイナリ ポイントタイプ . つまり、このような数字を表現するのである。

10001.10010110011

2進数と2進小数点の位置は、ともに値の中にエンコードされています。

decimal フローティング 10進数 ポイントタイプ . つまり、このように数字を表現するのです。

12345.65789

ここでも、番号と 10進数 は両方とも値の中にエンコードされています。 decimal は固定小数点型ではなく、浮動小数点型であることに変わりはありません。

注意すべき重要な点は、人間は非整数を10進数で表現することに慣れており、10進数表現に正確な結果を期待しているということです。すべての10進数が2進浮動小数点で正確に表現できるわけではなく、たとえば0.1では、2進浮動小数点値を使用すると、実際には0.1の近似値を得ることになります。例えば、1を3で割った結果を正確に表現することはできません。

どのような時に使うかについてですが

  • 当然ながら正確な小数です。 decimal . これは通常、人間が発明したあらゆる概念に適しています。金融価値が最もわかりやすい例ですが、それ以外にもあります。例えば、潜水士やアイススケーターの点数を考えてみよう。

  • 測定不可能な自然の産物である価値観の場合 まさに とにかく float / double の方がより適切です。例えば、科学的なデータは通常このような形で表現されるでしょう。この場合、元の値はそもそも"10進の正確さ"ではないので、期待する結果にとって"10進の正確さを維持することは重要ではありません。浮動2進数型は10進数よりはるかに高速に処理できます。