关于acm题目中double类型比大小的问题,整了快几个小时了,求助在线等

1.实数判等(原因见2)
A.不可直接if(x==y)判断。
B.用if (fabs(x-y)<esp)来判断,esp通常取1e-8或更小。
2.底函数(取整)
A.实数不一定能精确的表示,比如2.98,实际上可能被存成2.9799…..这是由于有限位的十进制数不一定用有限位的二进制数表示。
B.所以取整可能会出大问题,比如理想值为3,而实际值是2.999…,那么取整后会是2而不是3。
C.但是,可以知道的是,实际值一定不会大于理想值,比如2.98实际是2.97999…,而不会是2.9900….。所以可以通过floor(esp+x)的方式取整。
3.四舍五入的方法
A.直接floor(x+0.5),可以完美四舍五入。
4.二分实数答案的迭代终止条件
A.答案可能是无理数或循环小数,所以如果用while (low<high)做条件,则会造成对答案的无限逼近而陷入死循环。
B.所以应用while (high-low<p)做条件,p是答案要求精度。
转载自网上的资料了希望可以帮到楼主
温馨提示:答案为网友推荐,仅供参考