说到浮点数的误差,我们先来联想一下现实生活中的误差:
假设图书馆到教学楼的距离为1000m,现在想要实地勘测,允许的误差为1m.
第一次测的结果为999.8m,1000-999.8=0.2<1m,在误差范围内结果有效。
第二次测的结果为998.8m,1000-998.8=1.2>1m,在误差范围外结果无效。
第三次测的结果为1001.2m,1001.2-1000=1.2>1m,在误差范围外结果无效。
第四次测的结果为1000.8m,1000.8-1000=0.8<1m,在误差范围内结果有效。
从以上数据,我们在实际生活中对数字的测量都存在误差,但是可以看出只要在误差允许的范围内,结果均有效。而误差的范围由自己定义,并无固定的值,但要尽可能小。
下来我们就进入对浮点数的误差分析,其所表达的意思和上例差不多......
我们一般采用宏定义来定义一个浮点数的误差值,比如
#define EPS 0.000001
整型与零比较:a==0,a>0,a<0
浮点数和零比较:-EPS<=a&&a<=EPS//a=0
a>EPS//a>0