lbl0.Text = Convert.ToDecimal(Convert.ToDouble(txtmoney.Text.Trim()) - Convert.ToDouble(lblprice.Text.Trim())).ToString("C");
 为什么老报错啊。“输入字符串的格式不正确。”
      public string Rname;
       
       public string dj;
        public string sj;
        public string t5;
 private void frmJZ_Load(object sender, EventArgs e)
        {
            this.Text = Rname + "结账";
            groupBox1.Text = "房间-" + Rname;
            SqlConnection conn = BaseClass.DBConn.CyCon();
            SqlDataAdapter sda = new SqlDataAdapter("select RoomName,RoomDJ,RoomType,GuestName,kaifangDate from tb_Room where RoomName='" + Rname + "'order by ID desc", conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            dgvRecord.DataSource = ds.Tables[0];
            conn.Open();
            SqlCommand cmd = new SqlCommand("select kaifangDate from tb_Room where RoomName='" + Rname + "'", conn);
             sj = Convert.ToString(cmd.ExecuteScalar());            DateTime t1 = Convert.ToDateTime(sj);
            DateTime t6 = Convert.ToDateTime(t1.ToLongDateString());            DateTime t2 = DateTime.Today;
            DateTime t3 = DateTime.Now;
            DateTime t4 = Convert.ToDateTime("12:00:00");
            
            TimeSpan d3 = t2.Subtract(t6);            Console.WriteLine(d3.Days.ToString() + "天"
             + d3.Hours.ToString() + "小时"
             + d3.Minutes.ToString() + "分钟"
             + d3.Seconds.ToString() + "秒"
             );
           
            string t5 = d3.Days.ToString();           
                cmd = new SqlCommand("select RoomDJ from tb_Room where RoomName='"+Rname+"'", conn);
                dj = cmd.ExecuteScalar().ToString();                if (t5 == "0")
                {
                    btnJZ.Enabled = true;
                    lblprice.Text = t5 + "*" + dj + "+" + dj + "=" + (Convert.ToDecimal(Convert.ToDouble(t5)) * Convert.ToDecimal(dj) + Convert.ToDecimal(dj)).ToString("C");
                }
                else
                {
                    if (t3 <= t4)                    
                   {
                          btnJZ.Enabled = true;
                          lblprice.Text = t5 + "*" + dj + "=" + (Convert.ToDecimal(Convert.ToDouble(t5)) * Convert.ToDecimal(dj)).ToString("C");
                    }
                    else
                    {
                    btnJZ.Enabled = true;
                    lblprice.Text = t5 + "*" + dj + "+" + dj + "=" + (Convert.ToDecimal(Convert.ToDouble(t5)) * Convert.ToDecimal(dj) + Convert.ToDecimal(dj)).ToString("C");
                }
                }
                
                conn.Close();
            
        }        private void txtmoney_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar != 8 && !char.IsDigit(e.KeyChar)) && e.KeyChar != 13)
            {
                MessageBox.Show("请输入数字");
                e.Handled = true;
            }
        }        private void txtmoney_TextChanged(object sender, EventArgs e)
        {
           
                if (txtmoney.Text == "")
                {
                    txtmoney.Text = "0";
                    lbl0.Text = "0";
                }
                else
                {
                    lbl0.Text = Convert.ToDecimal(Convert.ToDouble(txtmoney.Text.Trim()) - Convert.ToDouble(lblprice.Text.Trim())).ToString("C");
                 
                }
           
        }

解决方案 »

  1.   

    lbl0.Text = Convert.ToDecimal(Convert.ToDouble(txtmoney.Text.Trim()) - Convert.ToDouble(lblprice.Text.Trim())).ToString();
      

  2.   

    lbl0.Text = Convert.ToDecimal(Convert.ToDouble(txtmoney.Text.Trim()) - Convert.ToDouble(lblprice.Text.Trim())).ToString("C");
     为什么老报错啊。“输入字符串的格式不正确。”说明txtmoney.Text.Trim()和lblprice.Text.Trim()不是数字字符。跟踪下看看。
      

  3.   

    lbl0.Text = Convert.ToDecimal(Convert.ToDouble(txtmoney.Text.Trim()) - Convert.ToDouble(t5)*Convert.ToDouble(dj)).ToString("C");
      如果写出这样 t5 好像取不到值 为0  
      

  4.   

    decimal? d=null;
    decimal.TryParse(txtmoney.Text.Trim(),out d);
    单步跟踪查看值
      

  5.   


    从你的Load方法中可以看出lblprice.Text不能转换为数字。  
      

  6.   


    double Aa = Convert.ToDouble(txtmoney.Text.Trim());double Ab = Convert.ToDouble(t5)*Convert.ToDouble(dj);Decimal Ac = Convert.ToDecimal(Aa - Ab);String Ad = Ac.toString("C");就这样 看看哪一步错了