我在对DELPHI的实数型数值赋值时出现了一个问题———当该实数变量被赋予一个浮点小数时系统得到
的这个浮点小数后面带有一个极小的尾数如:通过界面给系统一个3.14的变量,但是该变量减去一个常数3.14后是一个小于10e-10的极小值,该值输出或做下一步计算时不会出错但是该变量和3.14比较大小的时候就出错了,本身是等号,现在却不等了。大家可以试一下。
步骤:
1.从界面得到一个浮点数3,14给变量a,
2.单步中断在给a赋值后的位置,
3.在单步中断状态输入a-3.14。并选中该公式
4.把光标停留在选中区查看该公式的结果————是个极小值。这是什么问题,有没有高手指教?

解决方案 »

  1.   

    老有人提这样的问题,简直不是程序员.差差IEEE标准和浮点寄存器就知道为什么会这样了,C\C++,所有的原生代码语言都是这样的.
    上来就Bug来Bug去的,先自己长长见识再说话
      

  2.   

    用SameValue
    uses Math;这和Delphi在最近的版本中引入无穷大和无穷小有关!
      

  3.   

    我还未学过delphi之前,在四年前考计算机二级时就明白了什么是浮点数....楼主不要动不动就BUG的,这么多BUG的话,delphi能生存至今?
      

  4.   

    大家不要骂了,还是告诉人家怎么做吧。一般是在某个精度内就认为两个浮点数相等。比如钱,如果-0.05<=M1-M2<=0.05,此时认为M1等于M2
      

  5.   

    同意ppayun(~云彩) ,大家都是这样过来的嘛