This postは、丸め誤差のために浮動小数点変数を==
と比較しないでください。それでは、どうすればいいのですか?C++で浮動小数点変数を比較する方法は?
-2
A
答えて
3
あなたは if (abs(result - expected) < 0.00001)
というか、絶対、エラーよりも、相対のための線に沿って何かを使用することができます
float relativeError = abs((A - B)/B);
if (relativeError <= maxRelativeError)
は、詳細についてはこれを参照してください。 http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
-2
bool AreSame(double a, double b)
{
return fabs(a - b) < std::numeric_limits<double>::min();
}
+2
これは同じではありません。たとえば '1e-40'と' 2e-40'という数字を取ります。これらは完全に二重として表現できますが、あなたのメソッドと同等です。 – Lanting
関連する問題
- 1. 浮動小数点値と浮動小数点値の比較
- 2. 浮動小数点数とゼロ比較
- 3. VS C++とC++ Builderの浮動小数点数の比較
- 4. x86アセンブラ:浮動小数点比較
- 5. 浮動小数点比較 `= 0.7`
- 6. 浮動小数点数によるC++の比較
- 7. 32651:浮動小数点浮動小数点浮動小数点エラーのルビー比較
- 8. C/C++:浮動小数点比較の速度
- 9. 浮動小数点のシリアライゼーション、辞書編集の比較==浮動小数点の比較
- 10. 浮動小数点数をゼロと比較する
- 11. シェルスクリプト - 浮動小数点数を比較する場合
- 12. PHPの浮動小数点数を比較する
- 13. C++の浮動小数点型の2つの変数の正確な比較
- 14. C++がPythonに浮動小数点浮動小数点を変換する
- 15. 浮動小数点数は浮動小数点数ですか?
- 16. 小数点浮動小数点(C++)
- 17. なぜこの浮動小数点比較は真ですか?
- 18. jQuery animateNumber - 浮動小数点浮動小数点の方法
- 19. 小数点以下2桁の浮動小数点数と小数点以下6桁の同じ浮動小数点数を比較する
- 20. 変数の浮動小数点浮動小数点
- 21. Pythonで2つの浮動小数点を比較します
- 22. Elasticsearchで浮動小数点浮動小数点数をfloatに変換する
- 23. Unityの浮動小数点を比較する
- 24. 関数と浮動小数点の比較
- 25. 浮動小数点数を浮動小数点数に変換する
- 26. C++で浮動小数点数を削除する方法
- 27. opencvでC++で浮動小数点数を丸める方法
- 28. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 29. Bigquery - 浮動小数点型を浮動小数点型にキャストする方法
- 30. Cの浮動小数点
ただし、注意してください。 Bがゼロの場合、その "relativeError"計算が爆発します。一般的に、相対誤差を使用すると、ゼロは "ほぼ等しい"と正確にゼロの値だけを比較します。 –