C#, проблема с textbox
есть текстбоксы, которые показывают значения, основываясь на формулах из длл
например
textBoxtop.Text = Math.Round(Hc.Gettop(Hc._ttn, Hc._tp), 1).ToString();
очищается текстбокс такой строчкой
Hc.Settop(Convert.ToDouble(textBoxtop.Text));
проблема в том, что после запуска расчетов заного, она не очищает текстбокс, а вылетает с ошибкой
потому что в текст боксе дробное значение, а она работает только с целочисленными
вот полный код кнопки для расчета
#region Кнопка "Расчитать"
private void btnRas4_Click(object sender, EventArgs e)
{
// Запустить процедуру расчета
RunSolver();
}
private void DataRefresh()
{
Hc.Setttn(Convert.ToDouble(textBoxttn.Text));
Hc.Settp(Convert.ToDouble(textBoxtp.Text));
Hc.SetL(Convert.ToDouble(textBoxL.Text));
Hc.Settop(Convert.ToDouble(textBoxtop.Text));
Hc.SetKV(Convert.ToDouble(textBoxKV.Text));
Hc.SetKT(Convert.ToDouble(textBoxKT.Text));
Hc.SetPr(Convert.ToDouble(textBoxPr.Text));
Hc.SetGr(Convert.ToDouble(textBoxGr.Text));
Hc.SetRa(Convert.ToDouble(textBoxRa.Text));
Hc.SetNu(Convert.ToDouble(textBoxNu.Text));
Hc.Seta(Convert.ToDouble(textBoxa.Text));
}
private void RunSolver()
{
if (FFlag) DataRefresh();
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBox.Show("Расчет успешно завершен", " ", buttons, MessageBoxIcon.Information);
if (Hc.GetL() <= 0)
{
MessageBox.Show("Определяющий размер не может быть меньше 0, измените условия задачи");
return;
}
textBoxtop.Text = Math.Round(Hc.Gettop(Hc._ttn, Hc._tp), 1).ToString();
//textBoxtop.Text = Convert.ToString(Math.Round((double)Hc.Gettop(Hc._ ttn, Hc._tp), 1).ToString());
textBoxKV.Text = Math.Round(Hc.GetKV(Hc._top), 10).ToString();
textBoxKT.Text = Math.Round(Hc.GetKT(Hc._top), 10).ToString();
textBoxPr.Text = Math.Round(Hc.GetPr(Hc._top), 10).ToString();
textBoxGr.Text = Math.Round(Hc.GetGr(Hc._KV, Hc._L, Hc._ttn, Hc._tp), 0).ToString();
//textBoxRa.Text = Math.Round(Hc.GetRa(Hc._Gr(Hc._KV, Hc._L, Hc._ttn, Hc._tp), Hc._Pr(Hc._top), 0)).ToString();
//textBoxNu.Text=Convert.ToString(Math.Round((double )
//textBoxa.Text = Math.Round(Hc.Geta(Hc._Nu, Hc._KT, Hc._L), 1).ToString();
btnOt4.Enabled = true;
отчетToolStripMenuItem.Enabled = true;
}
#endregion
подскажите, что нужно изменить ?
Из путанного объяснения и неоформленного кода я мало что понял но предположу - надо использовать запятую для разделителя дробных и целых вместо точки.
Нужно использовать CultureInfo.InvariantCulture для формирования строки (ToString) и последующего разбора строки.