运算符*不能应用于十进制和双精度类型的操作数

时间:2017-08-10 01:04:11

标签: c#

对于无知道歉,我对此非常陌生,并且我收到了以下错误。

我还在第56和63行

中放置了注释

第56行错误 - CS0019运算符*不能应用于十进制和双精度类型的操作数

第63行错误 - 参数1:无法转换为' void'到了布尔'

{
class Savings : Account
{
    //property
    private double interestrate;

    //constructor
    public Savings()
    {

    }

    public Savings(string AccountName, int AccountNumber, decimal balance, double interestrate)
    {
        setAccountName(AccountName);
        setAccountNumber(AccountNumber);
        setBalance(balance);
        setinterestrate(interestrate);
    }

    //setter
    public void setinterestrate(double interestratepassedin)
    {
        if (interestrate > 0)
        {
            interestrate = interestratepassedin;

        }
        else
        {
            interestrate = 0;
        }

    }




    //getter
    public double getinterestrate()
    {
        return interestrate;
    }


    //method to calculate interest
    public void calculateinterest()
    {
        //line 56 below
        return getBalance() * getinterestrate();

    }

    public override void printaccount()
    {
        base.printaccount();
        //line 63 below
        Console.WriteLine(Console.WriteLine("{0}\t{1}\t{2}\t{3}", getAccountName(), getAccountNumber(), getBalance(), interestrate));

    }

}
}

1 个答案:

答案 0 :(得分:0)

您的calculateinterest()方法的返回类型为void,但会返回一个值。 将返回类型更改为适当的数据类型而不是void

看起来像getBalance()返回decimal。 您可以将兴趣转换为小数,并使getinterestrate()返回decimal而不是double

您可以更改getinterestrate(),如下所示: -

public decimal getinterestrate()
{
     return (decimal)interestrate;
}