浮点数精度问题

    技术2022-07-10  138

    浮点数在比较的时候,要避免直接用==, <, >,一般要指定一个定都eps = 1e-6, 则a = = b, 就改成fabs(a - b) <= eps, 要取绝对值,才可以更精确!

    #include <iostream> #include <cstring> #include <cstdio> #include <cmath> using namespace std; int main() { double fen1, fen2, fen3, fen4; for(double i = 1.0; i <= 20; i ++ ) { fen1 = 1 / i; for(double k = i + 1.0; k <= 20; k ++ ) { fen2 = 1 / k; for(double j = k + 1.0; j <= 20; j ++ ) { fen3 = 1 / j; for(double a = j + 1.0; a <= 20; a ++ ) { fen4 = 1 / a; if(fabs(fen1 + fen2 + fen3 + fen4 - 1.0) <= 1e-6) printf("%lf %lf %lf %lf\n", i, k, j, a); } } } } return 0; } malloc 头文件<cstdlib> 动态分配内存 该函数返回一个指针 ,指向已分配大小的内存。如果请求失败,则返回 NULL。
    Processed: 0.014, SQL: 9