Java 如何在JUnit assertEquals中强制BigDecimal取整?

Java 如何在JUnit assertEquals中强制BigDecimal取整?,java,junit,bigdecimal,Java,Junit,Bigdecimal,每次我运行assertEquals时,预期的BigDecimal都会被四舍五入,这导致它失败。我如何确保它不会旋转或有其他方法 @Test public void test() { BigDecimal amount = BigDecimal.valueOf(1000); BigDecimal interestRate = BigDecimal.valueOf(10); BigDecimal years = BigDecimal.valueOf(10); Inte

每次我运行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");

如果不这样做,数字将首先转换为
双精度
,然后转换为
大十进制
,因为
1321.507369947139705200000是
双精度
文本。这真的不是你想要的。

啊,谢谢你,大卫!不要认为这是完全重复的,另一个问题到处都在调用.doubleValue()。