C#方法名称预期错误

时间:2015-09-22 21:21:09

标签: c# methods console

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"其中,它表示每月支付金额,它返回错误"方法名称预期"如何我解决了吗?

1 个答案:

答案 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的类型。但我现在看到的payoffint的类型。将支付类型更改为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);