我有兩種不同的方式來計算一個值。一旦這兩種方法運行,我得到如下:如何比較小數知道有錯誤的空間
decimal a = 145.2344;
decimal b = 145.2345;
我有一個單元測試:
Assert.AreEqual(a,b);
我希望能夠佔+/- 0.0001差異。我如何添加此規則?
我有兩種不同的方式來計算一個值。一旦這兩種方法運行,我得到如下:如何比較小數知道有錯誤的空間
decimal a = 145.2344;
decimal b = 145.2345;
我有一個單元測試:
Assert.AreEqual(a,b);
我希望能夠佔+/- 0.0001差異。我如何添加此規則?
簡單:
if (Math.Abs(a-b) < 0.0001m)
// equal
在NUnit's constraint model,你可以這樣做:
Assert.That(Math.Abs(a-b), Is.LessThan(0.0001M));
更妙的是,使它成爲一個功能:
void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
Assert.That(Math.Abs(a-b), Is.LessThan(diff));
}
編輯:在MS股測試框架,請執行以下操作:
void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
Assert.IsTrue(Math.Abs(a-b) < diff);
}
是c#?我找不到任何。那種方法... –
@MichaelBray這是在NUnit 2.4中引入的NUnit *約束模型。你可以閱讀[這裏](http://www.nunit.org/index.php?p=constraintModel&r=2.4.8)。 – dasblinkenlight
@MichaelBray啊,我剛剛注意到OP的評論,非常感謝!我編輯了我的答案。 – dasblinkenlight
你正在使用哪個單元測試框架/斷言庫? – nemesv
MS'單元測試框架 – RJP