C语言,浮点数比大小
曾经听老师说,实型的数值在计算机中,好像是小数点后第六位还是第几位是随机的,那么两个实型数之间不能用<或者>比大小。但是今天我做题的时候,2级C模拟真题中有个题目就是用了...
曾经听老师说,实型的数值在计算机中,好像是小数点后第六位还是第几位是随机的,那么两个实型数之间不能用<或者>比大小。
但是今天我做题的时候,2级C模拟真题中有个题目就是用了这个<>比大小,但是VC有效,谁能解释一下不?
是我记错了吗? 展开
但是今天我做题的时候,2级C模拟真题中有个题目就是用了这个<>比大小,但是VC有效,谁能解释一下不?
是我记错了吗? 展开
2个回答
展开全部
在计算机中表示一个浮点数,其结构如下:
尾数部分(定点小数) 阶码部分(定点整数)
是2的指数形式来表示小数。因此一个小数用浮点数来表示,肯定是有误差的。
比如说两个运算过程,它们的结果都是2,但是由于浮点运算过程不一样,它结果可能有差异,比如说可能一个结果为2,一个结果为1.9999999999.
因此用==号来比较,会得出错误的结果,浮点数比较相等的时候,用两个数的相减,当小于一个比较小的值时,就认为相等。
但用><比较大小是可以的。
尾数部分(定点小数) 阶码部分(定点整数)
是2的指数形式来表示小数。因此一个小数用浮点数来表示,肯定是有误差的。
比如说两个运算过程,它们的结果都是2,但是由于浮点运算过程不一样,它结果可能有差异,比如说可能一个结果为2,一个结果为1.9999999999.
因此用==号来比较,会得出错误的结果,浮点数比较相等的时候,用两个数的相减,当小于一个比较小的值时,就认为相等。
但用><比较大小是可以的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询