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