C# 方法名称预期错误
C# Method Name Expected Error
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);
}
}
}
"payoff = -(1 / 30) * Math.Log(1 + creditcardbalance / monthlypayementamount " 说每月付款金额 returns 的错误 "method name expected" 我该如何解决?
查看公式,您的等式应该是这样的。
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.
这个方程的结果也是双精度类型。但是我现在看到的 payoff
是 int
的类型。将收益类型更改为 double 或将结果转换为 int。
另一个问题是-(1/30)
。它们都是 integer
表示结果没有小数点。所以把 d
放在数字后面,这样它将是包含小数部分的双精度类型。感谢@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);
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);
}
}
}
"payoff = -(1 / 30) * Math.Log(1 + creditcardbalance / monthlypayementamount " 说每月付款金额 returns 的错误 "method name expected" 我该如何解决?
查看公式,您的等式应该是这样的。
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.
这个方程的结果也是双精度类型。但是我现在看到的 payoff
是 int
的类型。将收益类型更改为 double 或将结果转换为 int。
另一个问题是-(1/30)
。它们都是 integer
表示结果没有小数点。所以把 d
放在数字后面,这样它将是包含小数部分的双精度类型。感谢@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);