ホームページ > Java > &#&チュートリアル > 不一致を避けるために Java で Double 値を正確に比較するにはどうすればよいですか?

不一致を避けるために Java で Double 値を正確に比較するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-13 21:08:34
オリジナル
322 人が閲覧しました

How Can I Accurately Compare Double Values in Java to Avoid Discrepancies?

Java での二重比較の不一致への対処

単純な等価性チェックを使用して Java で 2 つの double 値を比較すると、固有の理由により予期しない結果が生じる可能性があります。浮動小数点演算の制限。この課題を克服するには、別のアプローチが必要です。

一般的な実装では、(a - b) == 1.0 などの 2 つの double の単純な比較は、期待される差が無視できる場合でも false を返す可能性があります。浮動小数点の計算では丸め誤差が生じる可能性があるためです。

double をより正確に比較するための推奨戦略は、Math.abs() メソッドを使用して 2 つの値間の絶対差を計算することです。

たとえば、次のコード スニペットでは、このアプローチを使用して double 値 a と b を比較します。

double a = 1.000001;
double b = 0.000001;
double tolerance = 0.000001;

boolean areEqual = (Math.abs(a - b) <= tolerance);
System.out.println(areEqual); // Prints true
ログイン後にコピー

適切な許容誤差を設定することにより、値 (この例では 0.000001 など) を使用すると、2 つの double の差が実用上等しいと見なすのに十分小さいかどうかを判断できます。このアプローチにより、double 値のより正確かつ一貫した比較が可能になり、完全な等価性チェックの落とし穴を回避できます。

以上が不一致を避けるために Java で Double 値を正確に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート