如何在 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/