c# -比较浮点值

本文关键字:比较 | 更新日期: 2023-09-27 17:54:45

我有一个小问题,当尝试比较两个浮点值。
在我的项目中,每个Game对象都有一个。score
每个。score属性都有一个介于0到10之间的浮点值,步长为0.5
在minimumscoreId中,浮点值为0..存储11(0表示函数未使用)
我遍历每一款游戏,看看分数是否高于所选分数。但是当我选择9作为minimumScore时,它显示为9.5 <9.5

更奇怪的是,如果我选择8,它会返回给我得分为9的游戏的值,另一个是9.5,另一个是7.5……

我真的不知道去哪里找这个问题,我试着停下来检查值,但它只是说if( 9.5 < 9.0 ),它仍然进入if…

if (minimumScoreId > 0)
    {
        for (int i = 0; i < minimumScoreId; i++)
        {
            float score = ( ((Game)(games[i]) ).Score);
            if ( score < ( minimumScoreId + 1.0) )
            {
                //delete from a list (this works in other functions without the float thing)
            }
        }
    }

c# -比较浮点值

if (minimumScoreId > 0)
                {
                    filter = true;
                    int j = 1;
                    for (int i = 1; i < minimumScoreId; i++)
                    {
                        float score = (((Game)(games[i-1])).Score);
                        if (score < ((float)minimumScoreId + 0.0))
                        {
                            gamesUpdate.RemoveAt(j-1);
                            j--;
                        }
                        j++;
                    }

谢谢大家的帮助!最后的两个回复也很有帮助,如果我有额外的时间,我会让迭代倒回去。目前我用这种方法解决了这个问题,并且它有效。