float a = 2.14F;           
            if (a <=2.14)
            { MessageBox.Show("OK"); }
            else
            {
                MessageBox.Show("ERROR");
            }
会返回ERROR。我的程序里有很多这样的比较。有什么好的方法修改量小?

解决方案 »

  1.   

    浮点数不能直接比较,可以设置一个阀值
    float a = 2.14F;   
      if (a - 2.14 <= 0.01)
      { MessageBox.Show("OK"); }
      else
      {
      MessageBox.Show("ERROR");
      }
      

  2.   

    浮点数比较必须用阈值。
    你的阈值可以设置成const类型,这样就省事额
      

  3.   


    正解啊,浮点数是不能直接用=来比较的,或者加一个阀值,或者a<2.15这样
      

  4.   

    难道你可以重载 int和float之间的 运算符?
      

  5.   

    阀值”这个词是错误的,本应是“阈值”,由于大家经常看不清“阈”字结构念错而产生的错误词语。
    阈值就是临界值,在各个领域都有这一说法。它表示一个效应能产生的最大值或最小值。
    [/Quote]