c语言问题,程序可运行但输出不是我想要的结果

img


程序可运行,为什么输入可以使得y==1的角度最后会输出y!=1?

y是浮点数,浮点数判断不能用==来判断是否相等,因为浮点数存在精度问题,你看似是1.0,实际可能是1.00000000001。

浮点数比较要用 a-b的绝对值 < 0.001 来判断这两个数是否相等,0.001这里代表精度,只是打个比方,