Double out = otherTypes.someMethod(c, c2);
assertEquals((Double)-1.0D, out);
我收到错误“Double cannot be resolved”(assertEquals 中的 Double),除了提取变量之外,还有什么办法可以绕过它吗?
这个错误是 Java 中的还是只是非常有用的功能,不会被修复?
最佳答案
一个重要说明:由于 float 的工作方式,您永远不应该直接比较两个 double (或通常所说的 float )是否相等,如果它们的差异在指定的增量范围内,请始终进行比较:abs(double1 - double2) < delta
.
JUnit 有一个 assertEquals(double expected, double actual, double delta)
方法来做到这一点。也就是说,您可能应该使用类似
assertEquals(-1.0d, (double) out, 0.000001d)
在您的代码中。
例如,您可以在 Brian Goetz 的一篇文章中找到有关 float 技巧和陷阱的更多信息:"Where's your point?"
关于java - Double 小于零的双重转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/224646/