浮動小数点比較はどのような場合に使用できますか?
プログラミングでは、浮動小数点数を等価演算子 (= =) と比較するのが一般的です。表現に内在的な不正確性があるため、推奨されません。ただし、このような比較が信頼できると考えられるシナリオは限られています。
整数の正確な表現
浮動小数点演算の標準として広く採用されている IEEE 754 では、次のことが保証されています。特定の範囲内の整数の float 表現が正確であること。したがって、ゼロを含む整数は等価演算子を使用して比較できます。
例:
float a = 1.0; float b = 1.0; a == b; // True
整数定数
コード例の BAR 定数のように、static const double として定義された定数を使用すると、 value は正確な浮動小数点数として表されます。したがって、等価演算子を使用して変数をそのような定数と比較すると、常に正しい結果が得られます。
例:
static const double BAR = 3.14; void foo(double d) { if (d == BAR) ... }
この場合、foo(BAR ) は、他の計算や演算によって d 変数が変更されないと仮定すると、常に true と評価されます。
注意注意事項
整数の浮動小数点比較は一般に信頼できますが、注意が必要です。
以上が浮動小数点比較に等価演算子を使用しても安全なのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。