比较arduino中的两个双变量

Dar*_*der 2 c arduino decimal

所以,我有两个双变量,我想比较它们直到3位小数.所以,对于变量(例如):

double x = 0.695999;
double y = 0.695111;
Run Code Online (Sandbox Code Playgroud)

如果我检查(x == y),它应该返回true(因为两者都相等,直到3位小数).谢谢!

小智 6

您可以(ab)使用整数比较和截断:

int is_equal_3decplaces(double a, double b) {
    long long ai = a * 1000;
    long long bi = b * 1000;
    return ai == bi;
}
Run Code Online (Sandbox Code Playgroud)

正如@DavidRF的基准测试所表明的那样,与计算绝对值相比,该解决方案在性能上略有提升(~40%).