Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 float와 double을 비교하는 방법은 무엇입니까?


수동 변수와 이중 변수를 비교하는 것은 최종 목표가 무엇인지에 따라 다릅니다. 너무 자세히 설명하지 않고 실행 가능한 기능을 원하고 일부 부정확한 계산에 문제가 없다면 다음 기능을 사용할 수 있습니다 -

예시

#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/