为什么要用fabs(a)<=1e-6而不用fabs(a)<=0

2024年11月20日 11:19
有2个网友回答
网友(1):

fabs(a)<=0这个问题还不大 但要是fabs(a)==0的话就出问题了 浮点型的0 在内存中并不是严格等于0的
比较完全相等通常不可靠.

因此可以认为当一个浮点数离原点足够近时,也就是f>0.00001 && f<-0.00001,认为f是0

网友(2):

这涉及到浮点数的表示问题,有点复杂。你可以理解成浮点数存在精度问题,不能直接用==来比较是否相等,只能看两数的差是否在一个很小的范围内。