【发布时间】:2019-04-05 06:02:53
【问题描述】:
我是一个初学者,试图用 Java 创建一个小程序,允许用户输入他们的贷款期限、利率等,并希望能输出每月还款的估计值。然而,当我这样做时,它给了我一个与我手动计算的完全不同的数字。
有人告诉我使用 BigDecimal 数学系统,因为原始双精度数据类型对于财务计算来说不够准确。
我正在做的步骤是试图模仿这个公式: M = P [i(1+i)^n/1-(1+i)^n]
BigDecimal iRateInput = BigDecimal.valueOf(iRate);
BigDecimal twelve = new BigDecimal("12");
BigDecimal iRateMonthly = iRateInput.divide(twelve);
BigDecimal one = new BigDecimal ("1");
BigDecimal iRateTemp = iRateMonthly.add(one);
BigDecimal loanTermBD = BigDecimal.valueOf(loanTerm);
loanTermBD = loanTermBD.multiply(twelve);
BigDecimal iRatePower = iRateTemp.pow(loanTerm);
BigDecimal iRateTop = iRateMonthly.multiply(iRatePower);
BigDecimal iRateBottom = iRatePower.subtract(one);
BigDecimal iRateTotal = iRateTop.divide(iRateBottom, BigDecimal.ROUND_UP);
BigDecimal borrowAmountBD = BigDecimal.valueOf(borrowAmount);
BigDecimal repayments = borrowAmountBD.multiply(iRateTotal);
我一直在测试这段代码:
P = 100,000
n = 15 年 (*12)
r = 0.06p/a
根据我的计算,每月还款应该是843.86 但我得到 6936.43
我们将不胜感激!
【问题讨论】:
标签: java bigdecimal finance