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.

这个方程的结果也是双精度类型。但是我现在看到的 payoffint 的类型。将收益类型更改为 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);