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

时间:2015-08-02 20:11:13

标签: java junit

Answers.find().sort({ "isInstructor": -1, "voteCount": -1 }) 方法有理由被弃用。在junit中是否有替代和/或不同的方法 - 或者我是否使用自己的小扩展

assertEquals(double,double)

2 个答案:

答案 0 :(得分:10)

是的,请改用assertEquals(double expected, double actual, double delta)

答案 1 :(得分:1)

在JUnit的情况下,已经有了函数。

但是在其他类型的Java代码中,除了JUnit测试用例之外, IBM has a recommendation用于比较两个浮点数,使用除法而不是减法 - 这样可以更容易地选择适用于所有输入范围的epsilon。

if (abs(a/b - 1) < epsilon)

关于epsilon的值,我会使用this Wikipedia table中给出的5.96e-08,或者可能是该值的2倍。

(见comparing float/double values using == operator