大十进制比较未按预期工作
根据 JavaDoc for ,该函数在比较过程中不考虑尺度。BigDecimal
compareTo
现在我有一个测试用例,看起来像这样:
BigDecimal result = callSomeService(foo);
assertTrue(result.compareTo(new BigDecimal(0.7)) == 0); //this does not work
assertTrue(result.equals(new BigDecimal(0.7).setScale(10, BigDecimal.ROUND_HALF_UP))); //this works
我期望函数返回的值是并且具有10的小数位数。打印该值将显示预期结果。但该功能似乎并没有按照我认为应有的方式工作。0.7
compareTo()
这是怎么回事?