日前帮朋友看一个程序,一个WHILE循环,退出条件是等于一个双精度数,结果程序未按照预想条件退出,由此联想到了双精度数的精度问题。

      由于计算机的计算位数有限,所以双精度数都存在精度损失的问题,因此一般不宜用相等函数进行判断。

      对于下面的例子

      通过例图可以看出:
      0.08+(0.42-0.5)=0,实际上是x+y的指示结果,使用等于0来判断,结果不等于0(x=y?)
     
      而下面(0.08+0.42)-0.5 =0,
使用等于0来判断,结果等于0(x=y?2)
     

      将上面不等于0的结果在+1,使用相等来判断,结果却等于1。


      由此可见,双精度浮点数的确不适合用相等来判断。

colinzhang
5/4/2009 02:58:44 pm

您不会是说我的那个串口通讯VI吧?!越看越像啊。
待会给您发信,看看。

Reply
labview7i
5/4/2009 03:30:40 pm

这是转载过来的文章!

Reply



Leave a Reply.