我有承載直徑(單位mm)和值得歐元硬幣的字典:評估和一個變量與一詞典的密鑰對
CoinsDiameters = new Dictionary<float, decimal>
{
{25.75F, 2.00m},
{24.25F, 0.50m},
{23.25F, 1.00m},
{22.25F, 0.20m},
{21.25F, 0.05m},
{19.75F, 0.10m},
{18.75F, 0.02m},
{16.25F, 0.01m}
};
因此,例如一50歐分硬幣具有24.25直徑毫米。經過一些圖像處理後,我得到直徑爲24.1毫米的圖像中的50美分硬幣的粗略直徑。我試圖通過記下+/- 0.2mm的錯誤來編寫下面的代碼,但它總是返回字典中的第一個值(2.00歐元硬幣)。邏輯有什麼問題?
public decimal GetValueForDiameter(float diameter)
{
foreach(var key in CoinsDiameters.Keys)
{
if (diameter < key + 0.2F || diameter > key - 0.2F)
{
return CoinsDiameters[key];
}
}
return 0;
}
您沒有使用調試器代替,是嗎? – 2012-03-27 23:58:13
你應該使用'&&'而不是'||' – 2012-03-27 23:59:36