Double の小数点の不正確さを克服する
Double を使用する場合、小数点以下の桁を正確に調整する必要が生じることがよくあります。よくある誤解は、0.1 または同様の分数を繰り返し乗算すれば十分であるというものです。ただし、このような値は double 形式で不正確に表現されるため、重大な丸め誤差が生じる可能性があります。
より正確なアプローチには、整数を正確に表現できるという事実を利用して、整数の乗算と除算を使用することが含まれます。たとえば、以下に示すように、100 で除算すると、小数点以下の桁が右に移動します:
double x = 1234; x /= 100;
ただし、整数による除算では複合丸め誤差が排除されますが、完全に排除できるわけではないことに注意してください。丸めの不正確さを排除します。浮動小数点演算では、使用する方法に関係なく、本質的に計算時に少量の丸めが発生します。
正確な 10 進表現を取得するには、任意精度の算術演算を提供する Java API のクラスである BigDecimal の使用を検討できます。 。 BigDecimal は正確な値を内部的に維持し、浮動小数点計算で発生する可能性のある丸め誤差を排除します。
以上がDouble 変数の小数点以下の桁を正確に調整するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。