long double 加减法计算精度问题
进行加减法运算, Clion工具:
long double ldTest1 = 123456.123456798888;
long double ldTest2 = 123456.123456798887;
long double ldTest3 = ldTest1 - ldTest2;
long double ldTest4 = ldTest2 + 0.000000000001;
printf("ldTest1 %.15Lf\n", ldTest1);
printf("ldTest2 %.15Lf\n", ldTest2);
printf("ldTest3 %.15Lf\n", ldTest3);
printf("ldTest4 %.15Lf\n", ldTest4);
输出结果如下:
ldTest1 123456.123456798886764
ldTest2 123456.123456798886764
ldTest3 0.000000000000000
ldTest4 123456.123456798887766
ldTest1和ldTest2的值居然是一样的
这样来看计算结果是有问题的