Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

So sánh float và double trong C++


So sánh float và double tùy vào mục đích. Nếu muốn hàm chạy được mà không đi sâu chi tiết và chấp nhận sai số nhỏ, dùng hàm sau:

Ví dụ

#include <iostream>
#include <cmath>
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); // 1 (true)
    cout << areSame(a, b); // 0 (false)
}

Đầu ra

1 0

Hàm so sánh sai số tuyệt đối với ngưỡng EPSILON. Cần chính xác hơn, đọc bài: https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/