如何在JUnit assertEquals中强制BigDecimal舍入?

use*_*297 6 java junit bigdecimal

每次我运行我的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());
}
Run Code Online (Sandbox Code Playgroud)

Daw*_*ica 19

将它放在引号中并使用BigDecimal构造函数.

BigDecimal expected = new BigDecimal("1321.507369947139705200000");
Run Code Online (Sandbox Code Playgroud)

如果你不这样做,数字会转换为double第一个,然后转换为a BigDecimal,因为它1321.507369947139705200000是一个double文字.这真的不是你想要的.