gpt4 book ai didi

c# - 此等式仅在传递某些值时返回 NaN

转载 作者:行者123 更新时间:2023-11-30 21:54:51 25 4
gpt4 key购买 nike

因此,在我的 C# 编程类(class)中,我必须根据余额、月供和 APR 计算还清信用卡余额所需的月数。

这是我们要解释的公式:

Mathematical formula

这是我制作的 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))
);

它适用于我尝试过的每个示例,除了一个,它在我需要得到答案的问题中指定:

How many months will it take Alice to pay off a $7,500.00 balance if the APR value is 0.22 and she pays $125.00 per month?

输出结果如下:

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 中,它返回两个不同的值 ( http://bit.ly/1LQSsEx ) 也许这与它有关,但我是 C# 的新手并且已经达到了我的知识极限。

这里发生了什么,我该如何解决?

最佳答案

以下代码的结果产生一个负数。

1 + (double)(7500 / 125) * (1 - Math.Pow((1 + (0.22 / 365)), 30))

Math.Log 由于显而易见的原因只适用于数字 > 0

这就是给你 NaN 的原因。

关于c# - 此等式仅在传递某些值时返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32777405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com