0
当我尝试比较2个浮点值时,有一点问题。
在我的项目,每个游戏对象具有.Score
每个.Score属性具有0.5
步骤0和10之间的浮点值在minimumscoreId存储的0..11一个浮点值(0是如果函数未使用)
我遍历每个游戏,看看得分是否高于选定的分数。但是当我选择9作为minimumScore时,它是9.5 < 9.5C# - 比较浮点值
更奇怪的是,如果我选择8,它会让我回到游戏值9,另一个9.5和另一个7.5 ...
我真的不知道到哪里寻找这个问题,我想停止和检查值,但它只是最高审计机关if(9.5 < 9.0)
,它仍然进入,如果...
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)
}
}
}
您确定要将分数与minimumScore * Id *进行比较吗? –
在你的文本中使用'>'但是在代码中它是'<'。你能混淆两者吗? –
顺便说一下,你的第一个'if'在这里是多余的 - 如果'minumumScoreId'为零(或更少),'for'循环不会运行。 –