2
當比較大的變化雙打它發生下列測試失敗:比較與Double.MaxValue
[Test]
public void DoubleMaxValueTest()
{
double val = Double.MaxValue;
double epsilon = 10000.0;
Assert.IsTrue(val > (Double.MaxValue - epsilon));
}
意識到作爲雙打被表示爲尾數,指數和符號位是由於這樣的事實: Double.MaxValue - 10000的值實際上表示方式與Double.MaxValue相同(這些值相等)。
問題是:如何獲得此測試返回true的最小epsilon?
如果你明白爲什麼測試失敗,最好是如果你從問題的開始就明確*,而不是在最後一部分改變問題。 – 2014-10-18 16:40:54
看看[這個問題](http://stackoverflow.com/questions/15330644/get-next-smallest-double-number)。 – Zong 2014-10-18 16:41:20
@Jon:你說得對,我希望現在更清楚。 – 2014-10-18 17:10:40