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

2024-11-20 11:19:17
推荐回答(2个)
回答1:

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

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

回答2:

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