没有找到合适的除法方法

  • 本文关键字:除法 方法 java
  • 更新时间 :
  • 英文 :


我检查了其他"找不到合适的方法"线程,但没有一个用于划分,所以我不确定从这里开始。

我正在检索用户输入的文本(贷款金额(并使用它来显示每月付款。

我正在尝试显示期限为 10 年的抵押贷款的每月付款。我正在使用公式贷款金额 + (贷款金额 * 利率(/120。我意识到利息计算比这更复杂,但对于这个例子,利息不会复合。

我试过铸造贷款金额。

BigDecimal purchasePrice = new BigDecimal(purchasePriceTextField.getText());
            BigDecimal downPayment = new BigDecimal(downPaymentTextField.getText());
            BigDecimal loanAmount = purchasePrice.subtract(downPayment);
            BigDecimal interestRate = new BigDecimal(interestRateTextField.getText());

            loanAmountTextField.setText(currency.format(loanAmount));
            BigDecimal temp = loanAmount + loanAmount.multiply(interestRate);
            tenYearTextField.setText(currency.format(temp.divide(120, 2, RoundingMode.HALF_UP)));

确切的错误是

MortgageCalculatorController.java:69: no suitable method found for divide(int, int, RoundingMode)
tenYearTextField.setText(currency.format(temp.divide(120, 2, RoundingMode.HALF_UP)));

该错误表示在 BigDecimal 中没有与参数 int、int、RoundingMode 进行方法划分。

您可能想要使用的方法是

public BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

所以你可能应该把你的第69行改成 tenYearTextField.setText(currency.format(temp.divide(BigDecimal.valueOf(120), 2, RoundingMode.HALF_UP)));

您可能还会在第 68 行收到错误,这将修复它:

BigDecimal temp = loanAmount.add(loanAmount.multiply(interestRate));

相关内容

  • 没有找到相关文章

最新更新