C语言环境中,6. 判断两个浮点型变量x和y是否相等一般用:if( <1e-6 )… 。

如题所述

浮点数不可能完全相等,因为寄存器的长度是有限制的,32bit和64bit,32位只能保留1位符号位,8位阶,23位尾数。64位为1位符号位,11位阶,52位尾数。所以浮点数不是精确的数(同理,double也是),一般来说,对于float x和float y,如果这两个浮点数相等,就是abs(x-y) < 0.000001这样判断一般是没有什么问题的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-15
判断相等,采用相减的方式,看看结果的绝对值是否小于某个足够小的数字,当然了,这个足够小的数字,取决于你要求的精度大小。追问

帮我填下空就行,if( <1e-6);
拜托了!

追答

if ( ( abs(x-y) ) < 1e-6 ) ,审核我的答案就审核了两天。

第2个回答  2012-11-18
if ( abs(x - y) < 1e-6)
printf("x与y相等");
else
printf("x与y不等");本回答被网友采纳
相似回答