因此,对于我的C#编程课程,我必须计算在给定余额,每月付款和APR的情况下偿还信用卡余额所需的月数。
以下是我们解释的公式:
pseudo selector :not()
implemented by JSoup
这是我制作的C#版本:
months = (double)decimal.Divide(-1, 30) * (
Math.Log(1 + (double)(balance / payment) * (1 - Math.Pow((1 + (apr / 365)), 30)))
/ Math.Log(1 + (apr / 365))
);
它适用于我尝试的每个例子,除了一个,我需要得到答案的问题中指定:
爱丽丝需要多少个月才能还清7,500.00美元的余额 APR价值是0.22,她每月支付125.00美元?
其输出如下:
Enter the credit card balance (example: 10000.00)
7500
Enter the monthly payment amount (example: 250.00)
125
Enter the annual percentage rate (example: 0.15)
0.22
It will take NaN months to pay off the balance.
Goodbye! Press any key to exit.
在我的调查中,我将公式插入WolframAlpha并返回两个不同的值()或许这与它有关,但我是C#的新手并且已经达到我的知识的最后。
这里发生了什么,我该如何解决?
答案 0 :(得分:3)
以下代码的结果产生负数。
1 + (double)(7500 / 125) * (1 - Math.Pow((1 + (0.22 / 365)), 30))
Math.Log
由于显而易见的原因仅适用于数字> 0
这就是给你一个NaN
。