C# Asp.Net中的折扣计算

C# Asp.Net中的折扣计算,c#,asp.net,C#,Asp.net,在我的gridview中,我有售价、数量、折扣和数量。用户输入数量和折扣,结果应显示在netamount列中,我正在尝试使用此代码。它不起作用,最后一行我正在减去它给出的值。错误请帮助我解决此问题。。。。。 我正在文本更改事件中编写此代码 foreach (GridViewRow row in GridView1.Rows) { TextBox txtSerAmt = (TextBox)row.FindControl("TxtServiceAmount");

在我的gridview中,我有售价、数量、折扣和数量。用户输入数量和折扣,结果应显示在netamount列中,我正在尝试使用此代码。它不起作用,最后一行我正在减去它给出的值。错误请帮助我解决此问题。。。。。 我正在文本更改事件中编写此代码

foreach (GridViewRow row in GridView1.Rows)
    {
        TextBox txtSerAmt = (TextBox)row.FindControl("TxtServiceAmount");
        TextBox txtQuantity = (TextBox)row.FindControl("txtQuantity");
        TextBox txtdsAmount = (TextBox)row.FindControl("txtdsAmount");
        TextBox TxtNetAmt = (TextBox)row.FindControl("TxtNetAmt");

        if (txtSerAmt != null && txtQuantity != null && txtdsAmount != null)
        {
           TxtNetAmt.Text = (((
           Convert.ToDouble(txtSerAmt.Text) * Convert.ToDouble(txtQuantity.Text))) * Convert.ToDouble(txtdsAmount.Text)/100).ToString();
        }
         txttotal.text = Convert.ToDouble(txtTotal.Text) - Convert.ToDouble(txtNetAmt.Text)
    }

出现错误的原因是txttotal。text是一种字符串类型,您的计算返回一种数字类型。因此,您需要转换为字符串,该字符串由ToString方法执行。请仔细观察最后一行:有txttotaltxttotal,以及前一行中提到的txtNetAmt

有一些拼写上的差异

 **txttotal**.text = Convert.ToDouble(**txtTotal**.Text) - Convert.ToDouble(**txtNetAmt**.Text)

在字符串到双精度转换中,首先检查获取值是否为null。如果null表示手动输入“0”,则会出现错误,并在减去most后再加一项,以转换为类似字符串的“Masoomian”答案


您应该检查所有FindControl,控件id是否正确。并且此计算仅在行绑定事件中进行

我没有得到折扣结果,在最后一行我尝试进行减法运算,它给出的错误是无法将int转换为string…..“error cannot convert int to string”,这意味着您必须将结果转换为string。将结果指定给双变量,然后将双变量转换为字符串,然后将字符串指定给txttotal.text如何进行减法运算,上面的代码不起作用,如果您能与我分享您的知识,我将不胜感激。提前谢谢。。!!!如何做减法,上面的代码是不工作的,如果你能与我分享你的知识,我将不胜感激。提前谢谢。。!!!它给出了以下错误:运算符“-”不能应用于“double”和“string”类型的操作数。请检查这是否为真。Double Result=Convert.ToDouble(txtotal.Text)-Convert.ToDouble(txtNetAmt.Text);如果这是真的。txttotal.text=Result.ToString();那就给我你的错误信息。”请原谅我的英语“什么是
txtotal.text
?它是
GridView
中的一列还是另一个
文本框
?如果是列,则首先查找该列。然后检查列的值,如果它是
null
,则将其设为0并进行计算。您可以发布错误消息以获得更多说明吗?请仔细观察最后一行,检查文本框名称并相应更正。txtotal.text=Convert.ToDouble(txtotal.text)-Convert.ToDouble(TxtNetAmt.text)@Rizwan您想说txtotal和txtotal是两个不同的文本框吗?
 **txttotal**.text = Convert.ToDouble(**txtTotal**.Text) - Convert.ToDouble(**txtNetAmt**.Text)
TextBox TxtNetAmt = (TextBox)row.FindControl("TxtNetAmt");

txttotal.text = (Convert.ToDouble(txtTotal.Text) - 
Convert.ToDouble(txtNetAmt.Text)).ToString();