特定の数学演算と type に関する問題を読んだことは覚えていますdouble
が、それらがいつ発生するか、またはそれらにどのように対処する必要があるかを忘れています。
「ビットコイン」は、小数点以下 8 桁の浮動小数点数です。double
他の種類(10進数など)ではなく、それらのタイプを使用すると想定しています。これは正しいです?
小数点以下 8 桁を使用するアプリケーションを作成、デバッグ、およびテストする際に、他にどのような問題を考慮する必要がありますか?
特定の数学演算と type に関する問題を読んだことは覚えていますdouble
が、それらがいつ発生するか、またはそれらにどのように対処する必要があるかを忘れています。
「ビットコイン」は、小数点以下 8 桁の浮動小数点数です。double
他の種類(10進数など)ではなく、それらのタイプを使用すると想定しています。これは正しいです?
小数点以下 8 桁を使用するアプリケーションを作成、デバッグ、およびテストする際に、他にどのような問題を考慮する必要がありますか?
あなたがお金で何かをしているなら、あなたは使うべきですdecimal
。数値のサイズによっては、小数点以下 8 桁よりもかなり前に精度の問題が発生します。
一定量のスペース (有効数字の数)float
があるため、9,000 から 10,000 (たとえば) の範囲の数値よりも、-1 から +1 の範囲の数値をより正確に表すことができます。
Float の精度は 7 桁しかないため、小数点以下 8 桁までの数値を表すことはできません。
Double の精度は 15 ~ 16 桁であるため、より正確ですが、金額の計算には十分な精度ではありません (特に大きな値の場合)。
彼らがそれをaと呼ぶなら、float
それは誤解を招くものです。float
おそらく、唯一の「浮動小数点型」を意味します。
特に通貨を扱うときに小数点以下の桁数と精度が心配な場合は、decimal
notfloat
またはを使用する必要がありますdouble
。