使用 Math.Pow 计算每月贷款
Monthly Loan Calculation using Math.Pow
我正在尝试使用以下公式计算每月还款额:
其中L为贷款金额,R为月利率,N为还款次数。
首先,我从 Web 应用程序获取输入并进行计算以将其转换为公式的正确格式:
double loanAmount = double.Parse(txtLoanAmount.Text) - double.Parse(txtDownPayment.Text);
double interestRate = (double.Parse(txtInterestRate.Text) / 100) / 12;
double loanPeriod = double.Parse(txtLoanPeriod.SelectedValue) * 12;
那么我现在的公式是这样写的:
Answer = loanAmount * interestRate / 1 - Math.Pow(1 / 1 + interestRate, loanPeriod);
我对math.pow函数不是太熟悉(我想我以前用过一次),所以我不确定我是否正确使用它。如果有人有任何建议,将不胜感激!
如之前的一些评论所述,运算符优先级将成为您代码中的一个问题。
根据我对你的公式的理解,你会希望它这样读;
Answer = (loanAmount * interestRate) / (1.0 - Math.Pow(1.0 / 1.0 + interestRate, loanPeriod));
这应该使您的优先级正确,并处理可能出现的任何浮点数学问题(请注意 1
-> 1.0
的变化)
正如 Ron 在评论中提到的,您可能还需要考虑从 double
更改为 decimal
以提高精度。
我正在尝试使用以下公式计算每月还款额:
其中L为贷款金额,R为月利率,N为还款次数。
首先,我从 Web 应用程序获取输入并进行计算以将其转换为公式的正确格式:
double loanAmount = double.Parse(txtLoanAmount.Text) - double.Parse(txtDownPayment.Text);
double interestRate = (double.Parse(txtInterestRate.Text) / 100) / 12;
double loanPeriod = double.Parse(txtLoanPeriod.SelectedValue) * 12;
那么我现在的公式是这样写的:
Answer = loanAmount * interestRate / 1 - Math.Pow(1 / 1 + interestRate, loanPeriod);
我对math.pow函数不是太熟悉(我想我以前用过一次),所以我不确定我是否正确使用它。如果有人有任何建议,将不胜感激!
如之前的一些评论所述,运算符优先级将成为您代码中的一个问题。
根据我对你的公式的理解,你会希望它这样读;
Answer = (loanAmount * interestRate) / (1.0 - Math.Pow(1.0 / 1.0 + interestRate, loanPeriod));
这应该使您的优先级正确,并处理可能出现的任何浮点数学问题(请注意 1
-> 1.0
的变化)
正如 Ron 在评论中提到的,您可能还需要考虑从 double
更改为 decimal
以提高精度。