ホームページ >Java >&#&チュートリアル >Java で Double を使用して計算するときに丸めエラーを回避するにはどうすればよいですか?
Java の二重丸めの問題の解決
Java では、倍精度浮動小数点数を使用して計算を実行すると、次の理由により予期しない結果が生じることがあります。丸め誤差。この問題に対処するには、Java の浮動小数点演算を理解し、適切な解決策を採用することが不可欠です。
double 値を減算すると、小さな丸め誤差が蓄積し、その結果、計算が不正確になる可能性があります。次のコード スニペットを考えてみましょう:
double tempCommission = targetPremium.doubleValue()*rate.doubleValue()/100d; double netToCompany = targetPremium.doubleValue() - tempCommission; double dCommission = request.getPremium().doubleValue() - netToCompany;
この例では、予想されるコミッション結果は 877.85 ですが、丸め誤差により計算では 877.8499999999999 となります。
解決策: BigDecimal を使用する
正確性を確保するため計算には、java.math.BigDecimal を使用することをお勧めします。このクラスは、double データ型の制限に対処する高精度浮動小数点演算を提供します。
BigDecimal を使用してコードの最後の行を書き直す:
BigDecimal commission = premium.subtract(netToCompany);
このアプローチにより、丸め誤差が排除され、正しい結果が生成されます。結果:
System.out.println(commission + " = " + premium + " - " + netToCompany);
出力:
877.85 = 1586.6 - 708.75
以上がJava で Double を使用して計算するときに丸めエラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。