#define eps 1e-8
int sgn(double a){
return a<-eps?-1:a>eps?1:0;
}
浮点数A,B
A>B sgn(A-B)>0
A=B sgn(A-B)==0
A<B sgn(A-B)<0
本文介绍了一种通过定义精度误差范围来比较两个浮点数大小的方法,并提供了具体的C语言实现。该方法通过判断两数之差与预设精度误差的关系,有效避免了直接使用浮点数进行比较时可能产生的精度问题。
#define eps 1e-8
int sgn(double a){
return a<-eps?-1:a>eps?1:0;
}
浮点数A,B
A>B sgn(A-B)>0
A=B sgn(A-B)==0
A<B sgn(A-B)<0
3569

被折叠的 条评论
为什么被折叠?