0

特定の数学演算と type に関する問題を読んだことは覚えていますdoubleが、それらがいつ発生するか、またはそれらにどのように対処する必要があるかを忘れています。

「ビットコイン」は、小数点以下 8 桁の浮動小数点数です。double他の種類(10進数など)ではなく、それらのタイプを使用すると想定しています。これは正しいです?

小数点以下 8 桁を使用するアプリケーションを作成、デバッグ、およびテストする際に、他にどのような問題を考慮する必要がありますか?

4

2 に答える 2

6

あなたがお金で何かをしているなら、あなたは使うべきですdecimal。数値のサイズによっては、小数点以下 8 桁よりもかなり前に精度の問題が発生します。

一定量のスペース (有効数字の数)floatがあるため、9,000 から 10,000 (たとえば) の範囲の数値よりも、-1 から +1 の範囲の数値をより正確に表すことができます。

Float の精度は 7 桁しかないため、小数点以下 8 桁までの数値を表すことはできません。

Double の精度は 15 ~ 16 桁であるため、より正確ですが、金額の計算には十分な精度ではありません (特に大きな値の場合)。

彼らがそれをaと呼ぶなら、floatそれは誤解を招くものです。floatおそらく、唯一の「浮動小数点型」を意味します。

于 2012-12-13T14:20:28.197 に答える
3

特に通貨を扱うときに小数点以下の桁数と精度が心配な場合は、decimalnotfloatまたはを使用する必要がありますdouble

于 2012-12-13T14:19:56.510 に答える