【问题标题】:C# Method Name Expected ErrorC# 方法名称预期错误
【发布时间】:2015-09-22 21:21:09
【问题描述】:
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”它说monthlypayementamount它返回“方法名称预期”的错误我该如何解决?

【问题讨论】:

  • monthlypayementamount **PutSomeOperatorHere** (
  • 根据您的代码,您正在尝试使用monthlypayementamount,就像它是一种方法一样,但它是一个变量。你到底想做什么?
  • 试图用信用卡余额除以每月还款额
  • @teng1 请解释整个payoff。它是如何计算的?我将您的问题标记为离题,因为它是一个简单的错误。除了不清楚您要做什么之外。
  • 我试图计算还清债务所需的时间。我正在遵循公式“信用卡方程式”

标签: c# methods console


【解决方案1】:

看看公式,你的方程式应该是这样的。

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 的类型。将 payoff 的类型更改为 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);

【讨论】:

  • 它运行但没有显示需要多少个月的输出.. 没有结果显示??
  • (1/30) 为零,还是我错过了什么?
  • @A.S.H 哦。好吧……我错过了
  • nvm 修复了它很棒的 ty m.kazem
  • 还有一个问题,您能解释一下为什么 (1d / 30 ) 为什么要添加 d 以及它代表什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-16
  • 2023-03-31
  • 2021-12-09
相关资源
最近更新 更多