计算百分比时出错

时间:2016-03-17 08:41:28

标签: c#

  

无法将'System.Web.UI.WebControls.TextBox'类型的对象强制转换为   输入'System.IConvertible'。

我在转换时遇到此错误。我有两个文本框,其中一个我有金额,另一个我有百分比值应该在第三个文本框中。

public partial class caltxt : System.Web.UI.Page
{
   double amt1;
    double exc;
    public void Page_Load(object sender, EventArgs e)
    {

    }

    public void txtamt_TextChanged(object sender, EventArgs e)
    {

         amt1 = Math.Round(Convert.ToDouble (txtamt));

        //decimal PercentageRate = Convert.ToDecimal(this.txtamt.Text);

    }


    protected void txtexc_TextChanged(object sender, EventArgs e)
    {

        double exc = Math.Round (Convert.ToDouble(this.txtexc.Text));


        // decimal    temp = (Math.Round(Convert.ToDecimal(txtexc.Text) / Convert.ToDecimal(txtamt.Text)*100));
       // txttotalexc.Text = temp.ToString();
    }

    protected void txttotalexc_TextChanged(object sender, EventArgs e)
    {
        double totat = Math.Round (Convert.ToDouble(exc) /100)* Convert.ToDouble(amt1); //+ Convert.ToInt32(this.txtexc.Text);
        this.txttotalexc.Text = totat.ToString();
    }
}

2 个答案:

答案 0 :(得分:2)

您应该将Textbox.Text属性转换为Double而不是TextBox本身

替换

amt1 = Math.Round(Convert.ToDouble (txtamt));

amt1 = Math.Round(Convert.ToDouble(txtamt.Text));

答案 1 :(得分:1)

这条线似乎有问题

   amt1 = Math.Round(Convert.ToDouble(txtamt));

为了使其有效,你应该使用这一行

  amt1 = Math.Round(Convert.ToDouble(txtamt.Text));

原因:txtamt没有值它只是一个对象,而txtamt.Text有一个值