如何在 C++ 中比较浮点数和双精度数?

c++server side programmingprogramming更新于 2025/5/16 4:52:17

比较浮点数和双精度数变量取决于您的最终目标。如果您想要一个可运行的函数,而不需要过多的细节,并且不会在某些不准确的计算中遇到问题,则可以使用以下函数 −

示例

#include<iostream>
using namespace std;

// 定义您可以容忍的错误
#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/


相关文章