[英]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.