0

因此,我试图从类方法将账单总成本的十进制值返回到文本框中。

这个类方法如图:

public decimal calcCost(decimal totalCost, bool specialistRepair, decimal labourHours,      decimal standardRate, decimal partSaleCost)
    {

        foreach (Job j in m_jobs)
        {
            if (specialistRepair == true)
            {
                totalCost = totalCost + 45;
            }

            totalCost = totalCost + partSaleCost + (labourHours * standardRate);
        }

        return totalCost;
    }

我遇到的问题是它说'不能隐式地将类型'十进制转换为'字符串'。

我尝试在“=”符号之后解析整行,但这是不可能的。

txtTotal.Text = //Here// Program.AuspexDo.calcCost(0, checkSpecialist, jobHours, standardRate, partSaleCost); 

main 的代码如下所示:

      bool checkSpecialist = true;
        if (chkSpecialistRepairs.Checked == true)
        {
            checkSpecialist = true;

        }

        decimal jobHours = decimal.Parse(txtHours.Text); 
        decimal standardRate = Program.AuspexDo.StandardRate;
        decimal partSaleCost = 5; //to be configured



        txtTotal.Text = Program.AuspexDo.calcCost(0, checkSpecialist, jobHours, standardRate, partSaleCost); 

如果有人可以提供帮助,将不胜感激。谢谢。

4

2 回答 2

2

将其更改为

txtTotal.Text = Program.AuspexDo.calcCost(0, checkSpecialist, jobHours, standardRate, partSaleCost).ToString();  
于 2012-10-22T13:50:51.087 回答
1

calcCost返回 adecimal并且您试图将返回值分配给txtTotal.Text,它的类型是string

正如错误所说,两者之间没有转换 - 您需要将返回值转换为string第一个 - 这样做的方法是调用ToString()返回值:

txtTotal.Text = Program.AuspexDo.calcCost(0, 
                                          checkSpecialist, 
                                          jobHours, 
                                          standardRate, 
                                          partSaleCost)
                                          .ToString();

查看自定义标准数字格式字符串,以及有关复合格式字符串的信息,因为您可能希望输出为特定格式。

于 2012-10-22T13:55:12.050 回答