2012-08-05 96 views
2

我試着在float和eclipse上使用assertEquals方法說這個方法是折舊的。因此,下列替代方案是否可以接受?可以在JUnit的float和double值上使用assertTrue嗎?

Assert.assertTrue("Total does not match expected total :", 
              receipt.getTotal() == 32.19f); 

有原因的assertEquals不能用來比較在測試兩個浮點數還是雙打具體的原因是什麼?

通常,在JUnit中聲明兩個十進制值相等的最佳方法是什麼?我使用JUnit的4.10版本

回答

4

一般而言,您可以將基本類型與==進行比較,但對於浮點值,兩個值可以看起來相同(當格式化爲字符串時),但是是兩個不同的值。您應該使用assertEquals(expected, actual, delta)。請參閱JUnit: assertEquals for double values的答案。

由於雙(和浮點數)計算不一定準確,所以可以使用增量(實際上是一個誤差)進行比較。