double a;
double b
a = log(x);
b = log(y);
然后比较 a 和 b 的大小;
这样写看似没有问题 ,其实有很致命的 bug, 做题的时候很容易出错。
因为 double 的小数位数是有限的,
如果 log( x) ,log (y) 是无限循环小数,,那么精度丢失的 很厉害,
所以涉及到可能有无限循环的小数比较大小的时候,
1、不要用第三变量去赋值,直接比较就行
比如 : log (x) > log(y) ?
2、用 long double 可以一定程度上缓解精度丢失的程度
(long double)a = log(x);
(long double )b = log(y);