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)
}
}
}
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++;
}
谢谢大家的帮助!最后的两个回复也很有帮助,如果我有额外的时间,我会让迭代倒回去。目前我用这种方法解决了这个问题,并且它有效。