0

是否有任何用于 JUnit 或 Java 实践的工具允许准确测试“小于”和“大于”等边界案例测试?

例如,将货币值四舍五入到最接近的美分。测试 0.005 到 0.01 很容易。测试 <0.005 舍入不是(严格来说)。

我显然可以测试像 0.0049 这样的任意值,但这并不能保证像 0.00499 这样的另一个值不会被四舍五入。对于正在执行的环境,是否有一个常数或任何保证最接近“小于”或“大于”的可能表示的数值?

4

2 回答 2

3

Math.nextAfter (0.005, 0)?

返回第二个参数方向上与第一个参数相邻的浮点数。如果两个参数比较相等,则返回第二个参数。

http://download.oracle.com/javase/6/docs/api/java/lang/Math.html#nextAfter%28double,%20double%29

于 2011-04-14T09:21:51.827 回答
1

可能,但这取决于许多因素。对于货币值,您应该始终使用BigDecimal它,因为它可以让您完全控制精度(例如doublefloat即使对于简单的值也会给出奇怪的结果)

于 2011-04-14T09:22:28.817 回答