在刷C语言作业的时候
做经典题目判断求解二元一次方程的根,
其中在判断Δ的时候我是直接使用 if Δ<0
但是答案则是 Δ<1e-6 我后来查阅文章才知道,其实在C语言中浮点型是有误差的,会导致结果不一样,比如我们不可以直接把两个浮点型用==和!=比较,因为小数位是不一样的,但是可以直接大小没问题,所以要比较浮点型解决方法是 abs(x-y) <1e-6 (小于认为二者一样,否则不一样,因为两者差接近0)其中在这里就把系统那一部分精度问题解决了,
比如这样一个情况 1/3 - 1/3应该为0 但如果精度不同
一个为0.3333333一个为0.3333那结果是0.0000333就不为0就不能达到预期效果了,所以为了避免这种情况,设置一个足够小的值看做0就可以避免出现精度损失导致分支错误



