[英]How to test for equality of float/double in JUnit?
assertEquals(double,double)
方法被合理地棄用。 是否有替代和/或不同的方法烘焙到junit中-還是我推出了自己的小擴展程序
static boolean assertEquals(double d1, double d2) {
return Math.abs(d1 - d2) < 1e-8;
}
是的,請改用assertEquals(double expected, double actual, double delta)
。
對於JUnit,已經有功能了。
但是在JUnit測試用例之外的其他類型的Java代碼中, IBM建議使用除法而不是減法比較兩個浮點數-這樣可以更容易地選擇適用於所有輸入范圍的epsilon。
if (abs(a/b - 1) < epsilon)
至於epsilon的值,我將使用Wikipedia表中給出的5.96e-08
或2x的值。
(請參閱使用==運算符比較float / double值 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.