複製
.. などなど...
精度が高いため、アプリ全体で C# と SQL Server の decimal データ型を使用しています。合計が詳細に合わないなどのイライラする問題は一度もありませんでした.
double と float が不正確であることを考えると、なぜ存在するのか疑問に思っていました
浮動小数点演算は、妥当なハードウェアコストで広範囲の非整数を操作する唯一の方法であるために発生しました。無限精度の演算は、いくつかの言語(Python、LISPなど)とライブラリ(JavaのBigNum、GMPなど)で実装されており、より高い精度が必要な人々(金融業界など)の代替手段です。中規模の数を扱う私たちの残りのほとんどにとって、floats
または確かにdoubles
十分に正確です。2つの異なる浮動小数点データ型(それぞれIEEE 754単精度および倍精度に対応)。単精度浮動小数点ユニットは、倍精度ユニットよりも面積、電力、および速度のプロパティがはるかに優れているため、ハードウェア設計者とプログラマーは、これらのさまざまなプロパティを活用するために適切なトレードオフを行う必要があります。
これらは10進数よりもはるかに高速であり、正確な精度は必要ないことがよくあります。
「decimal」は128ビット、doubleは64ビット、floatは32ビットです。昔は、それが問題でした。
小数は主に(丸めを避けるための)金銭取引用ですが、その他の小数は、精度の小数29が実際の意味を持たないいくつかの事柄に十分対応できます。