【问题标题】:Monthly Loan Calculation using Math.Pow使用 Math.Pow 计算每月贷款
【发布时间】:2018-08-09 01:42:04
【问题描述】:

我正在尝试使用以下公式计算每月还款额:

其中 L 是贷款金额,R 是月利率,N 是还款次数。

首先,我从网络应用程序获取输入并进行计算以将其转换为公式的正确格式:

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 函数不太熟悉(想我以前用过一次),所以我不确定我是否正确使用它。如果有人有任何建议,将不胜感激!

【问题讨论】:

  • `Math.Pow(value, power),你需要注意运算符的优先级,即在加减之前乘除,尽可能使用括号。
  • 不要混合整数数学和浮点数。您应该输入1.0 而不是1(有区别)。此外,如果您对精度感兴趣,请使用 decimal 类型而不是 double

标签: c# webforms pow


【解决方案1】:

正如前面一些 cmets 中提到的,运算符优先级将成为您代码中的一个问题。

根据我对您的公式的理解,您会希望它像这样读取;

Answer = (loanAmount * interestRate) / (1.0 - Math.Pow(1.0 / 1.0 + interestRate, loanPeriod));

这应该使您的优先级正确,并处理可能出现的任何浮点数学问题(注意从1 -> 1.0 的变化)

正如 Ron 在 cmets 中提到的,您可能还需要考虑从 double 更改为 decimal 以提高精度。

【讨论】:

  • 感谢您的建议。它帮助我更接近答案,还需要在电源前面输入负数,它得到了我的正确数字!
猜你喜欢
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多