c语言中比较实型变量data2和常数0是否相等为什么用fabs(data2)<=1e-7

2025-02-26 04:57:43
推荐回答(2个)
回答1:

因为在c语言中实数是不确定的,比如实数0可能是0.000001所以不能用data2==0来判断,如果这样判断就算data2是0也会返回false实数的有效位是6位,所以用fabs(data2)<=1e-7来判断是准确的就是说如果比0.0000001还小的话那就是0

回答2:

因为浮点数表示方式以及计算机表示实数时的有限精度效应,比较两个浮点数f1和f2是否相等通常都用其差的绝对值小于一个很小的正实数的方法。所提问题中的例子即此方法的一个具体使用。