using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DebtCalculator
{
class Program
{
static void Main(string[] args)
{
double creditcardbalance;
Console.WriteLine("Enter in credit card balance:");
creditcardbalance = double.Parse(Console.ReadLine());
double monthlypayementamount;
Console.WriteLine("Enter in the monthly payement amount:");
monthlypayementamount = double.Parse(Console.ReadLine());
double percentagerate;
Console.WriteLine("Enter in annual percentage rate:");
percentagerate = double.Parse(Console.ReadLine());
int payoff;
double dailyinterestrate;
dailyinterestrate = percentagerate / 365;
payoff = -(1 / 30) * Math.Log(1 + creditcardbalance / monthlypayementamount (1 - (1 + dailyinterestrate), Math.Pow(0, 30))) / Math.Log(1 + dailyinterestrate);
}
}
}
"支付= - (1/30)* Math.Log(1 + creditcardbalance / monthlypayementamount"其中,它表示每月支付金额,它返回错误"方法名称预期"如何我解决了吗?
答案 0 :(得分:0)
看看公式,你的等式应该是这样的。
payoff = -(1d / 30) * Math.Log(1 + creditcardbalance / monthlypayementamount * (1 - Math.Pow(1 + dailyinterestrate, 30))) / Math.Log(1 + dailyinterestrate);
你的问题。在数学p(2)
中可能会转换为p*(2)
但在编码时你必须写出所有内容p*(2)
。
部分Math.Pow(0,30)
评估为0^30
。你必须把1 + dailyinterestrate
(根据公式)而不是0。
此等式的结果也是double的类型。但我现在看到的payoff
是int
的类型。将支付类型更改为double或将结果转换为int。
另一个问题是-(1/30)
。它们都是integer
表示结果没有小数。所以把d
放在数字后面,这样它就是double的类型,它包含小数部分。感谢@ A.S.H
您必须使用Console.WriteLine()
方法
您的代码应如下所示。
double payoff;
double dailyinterestrate;
dailyinterestrate = percentagerate / 365;
payoff = -(1d / 30) * Math.Log(1 + creditcardbalance / monthlypayementamount * (1 - Math.Pow(1 + dailyinterestrate, 30))) / Math.Log(1 + dailyinterestrate);
Console.WriteLine(payoff);