一个重要的注意事项:由于浮点数的工作方式,你不应该直接比较两个双精度(或通常说的浮点数)的相等性,如果它们的差值在指定的delta内,则总是进行比较:abs(double1 - double2) < delta
.
JUnit有一种assertEquals(double expected, double actual, double delta)
方法可以做到这一点.也就是说,你应该使用类似的东西
assertEquals(-1.0d, (double) out, 0.000001d)
在你的代码中.
你可以在Brian Goetz的文章中找到更多有关浮点数的技巧和陷阱:"你的意思在哪里?"
一个重要的注意事项:由于浮点数的工作方式,你不应该直接比较两个双精度(或通常说的浮点数)的相等性,如果它们的差值在指定的delta内,则总是进行比较:abs(double1 - double2) < delta
.
JUnit有一种assertEquals(double expected, double actual, double delta)
方法可以做到这一点.也就是说,你应该使用类似的东西
assertEquals(-1.0d, (double) out, 0.000001d)
在你的代码中.
你可以在Brian Goetz的文章中找到更多有关浮点数的技巧和陷阱:"你的意思在哪里?"