c++ 浮点数比较判断

在C++中,由于浮点数的精度问题,直接使用 `==`、`<`、`>` 等运算符来比较浮点数可能会导致不准确的结果。浮点数在计算机中是以二进制形式存储的,某些十进制小数无法精确表示,因此可能会引入微小的误差。

为了比较浮点数,通常使用一个很小的阈值(epsilon)来判断两个浮点数是否“足够接近”。以下是一个常见的浮点数比较方法:

### 1. 比较两个浮点数是否相等
```cpp
#include <cmath>
#include <iostream>

bool approximatelyEqual(double a, double b, double epsilon = 1e-6) {
    return std::fabs(a - b) < epsilon;
}

int main() {
    double a = 0.1 + 0.2;
    double b = 0.3;

    if (approximatelyEqual(a, b)) {
        std::cout << "a and b are approximately equal." << std::endl;
    } else {
        std::cout << "a and b are not equal." << std::endl;
    }

    return 0;
}
```

### 2. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值