每次我运行 assertEquals 时,我预期的 BigDecimal 都会四舍五入,这会导致它失败。我如何确保它不会变圆或是否有其他方法?
@Test
public void test() {
BigDecimal amount = BigDecimal.valueOf(1000);
BigDecimal interestRate = BigDecimal.valueOf(10);
BigDecimal years = BigDecimal.valueOf(10);
InterestCalculator ic = new InterestCalculate(amount, interestRate, years);
BigDecimal expected = BigDecimal.valueOf(1321.507369947139705200000);
assertEquals(expected, ic.getMonthlyPaymentAmount());
}
最佳答案
将其放在引号中并使用 BigDecimal
构造函数。
BigDecimal expected = new BigDecimal("1321.507369947139705200000");
如果不这样做,数字会先转换为 double
,然后再转换为 BigDecimal
,因为 1321.507369947139705200000
是一个 double
文字。这真的不是您想要的。
关于java - 如何在 JUnit assertEquals 中强制 BigDecimal 舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20645922/