如何比较C++中的float和double?
比较浮动和双变量取决于您的最终目标是什么。如果您想要一个可运行的函数而不需要太多细节并且在某些不准确的计算中不会出现问题,您可以使用以下函数-
示例
#includeusing 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/