繁体   English   中英

如何在JUnit中测试float / double的相等性?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM