C++ 中的浮點數比較
本文介紹如何使用 C++ 比較兩個浮點資料。浮點比較與整數比較不同。
要比較兩個浮點值,必須考慮比較的精度。例如,如果兩個數字為 3.1428 和 3.1415,則它們的精度為 0.01 時相同,但之後,例如 0.001 時,它們並不相同。
要根據此準則進行比較,我們將找到將一個浮點數減去另一個浮點數後的絕對值,然後檢查結果是否小於精度值。透過此方法,我們可以判定它們是否相等。
示例
#include <iostream> #include <cmath> using namespace std; bool compare_float(float x, float y, float epsilon = 0.01f){ if(fabs(x - y) < epsilon) return true; //they are same return false; //they are not same } int main() { float x, y; x = 22.0f/7.0f; y = 3.1415f; if(compare_float(x, y)){ cout << "They are equivalent" << endl; } else { cout << "They are not equivalent" << endl; } if(compare_float(x, y, 0.001f)){ cout << "They are equivalent" << endl; } else { cout << "They are not equivalent" << endl; } }
輸出
They are equivalent They are not equivalent
廣告