我在做一些單元測試工作,併爲其中一個斷言彈出一個特殊的錯誤。請注意expectedValue和actualValue都是雙打。C#.Net雙重問題... 6.8!= 6.8?
Assert.AreEqual(expectedValue, actualValue);
異常表示,他們不相等,闡述的是 「預期值:< 6.8>實際值:< 6.8>」。
預期值是硬編碼6.8和實際值是使用數據庫值通過我們的分類方法(如相等的記錄,或詹克斯自然中斷的)去制定。
我的猜測是,所不同的是可能是2個值的尾數,直到至少顯著幾分相似了。我更新了測試,以包含一個epsilon來查找這兩個值是否足夠接近,但我很好奇,是否有辦法強制尾數與顯示值相匹配,如果我顯示雙倍。這樣的尾數改正是否存在?
人們無法正確讀取你的問題,你知道是怎麼回事配合精度,你是隻是詢問尾數處理問題的更好,對吧? – 2010-08-16 17:11:39
我在尋求一種可能的方式來重構mantisa,以便它保持一個更接近它所顯示的值。有點像val = double.Parse(val.ToString());或許更有效。 – 2010-08-16 19:13:06