수동 변수와 이중 변수를 비교하는 것은 최종 목표가 무엇인지에 따라 다릅니다. 너무 자세히 설명하지 않고 실행 가능한 기능을 원하고 일부 부정확한 계산에 문제가 없다면 다음 기능을 사용할 수 있습니다 -
예시
#include<iostream>
using namespace std;
// Define the error that you can tolerate
#define EPSILON 0.000001
bool areSame(double a, double b) {
return fabs(a - b) < EPSILON;
}
int main() {
double a = 1.005;
double b = 1.006;
cout << areSame(a, a);
cout << areSame(a, b);
} 출력
이것은 출력을 제공합니다 -
1 0
이 기능은 오류에 대한 허용 범위를 취하고 임계값이 비교 중인 숫자 간의 차이보다 큰지 확인합니다. 훨씬 더 정확한 정보가 필요하면 이 훌륭한 블로그 게시물을 읽는 것이 좋습니다. https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/