C语言,浮点数比大小

曾经听老师说,实型的数值在计算机中,好像是小数点后第六位还是第几位是随机的,那么两个实型数之间不能用<或者>比大小。
但是今天我做题的时候,2级C模拟真题中有个题目就是用了这个<>比大小,但是VC有效,谁能解释一下不?
是我记错了吗?

在计算机中表示一个浮点数,其结构如下:   
尾数部分(定点小数) 阶码部分(定点整数)
是2的指数形式来表示小数。因此一个小数用浮点数来表示,肯定是有误差的。

比如说两个运算过程,它们的结果都是2,但是由于浮点运算过程不一样,它结果可能有差异,比如说可能一个结果为2,一个结果为1.9999999999.

因此用==号来比较,会得出错误的结果,浮点数比较相等的时候,用两个数的相减,当小于一个比较小的值时,就认为相等。
但用><比较大小是可以的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-04
不能用等于号比较,可以使用><比较追问

谢谢,如果是用等于号的话是不是要用这样的形式。
x-e<=1e-6

追答

应这样 if ( x>k-0.00001 && x < k+0.00001)

相似回答