实数判等(原因见2) 不可直接if(x==y)判断。 用if (fabs(x-y)<esp)来判断,esp通常取1e-8或更小。 底函数(取整) 实数不一定能精确的表示,比如2.98,实际上可能被存成2.9799…..这是由于有限位的十进制数不一定用有限位的二进制数表示。 所以取整可能会出大问题,比如理想值为3,而实际值是2.999…,那么取整后会是2而不是3。 但是,可以知道的是,实际值一定不会大于理想值,比如2.98实际是2.97999…,而不会是2.9900….。所以可以通过floor(esp+x)的方式取整。 四舍五入的方法 直接floor(x+0.5),可
实数精度问题汇总
Reply