Как использовать тип данных float для расчета?
У меня есть расчет, который я пытаюсь сделать с типом данных float. Я никогда не делал этого раньше, используя float, поэтому я новичок в этом. Это код, который у меня есть до сих пор:
float c = float.Parse(TextBox1.Text.Replace(",", "").Replace(".", "")); float d = float.Parse(TextBox2.Text.Replace(",", "").Replace(".", "")); TextBox3.Text = (c-d).ToString();
Он делает расчеты для того, чтобы результат, который я получаю, был неправильным. Он имеет цифры и Буквы в текстовом поле 3.
Это то, что я пытаюсь вычислить для каждого текстового поля. Я делаю вычитание.
float c = float.Parse(TextBox1.Text.Replace(",", "").Replace(".", "")); //$46,534,798.18 float d = float.Parse(TextBox2.Text.Replace(",", "").Replace(".", "")); //$44,441,222.00 TextBox3.Text = (c-d).ToString(); //4.65348E+11
Пожалуйста, помогите мне!!
Что я уже пробовал:
float c = float.Parse(TextBox1.Text.Replace(",", "").Replace(".", "")); float d = float.Parse(TextBox2.Text.Replace(",", "").Replace(".", "")); TextBox3.Text = (c-d).ToString();
Member 13566383
Покажите нам содержимое вашего текстового поля, значения ваших переменных c и d и результат, содержащийся в TextBox3.Text.
"Результат неверен" не является содержательным описанием ошибки.
Computer Wiz99
Извините за долгое ожидание и недостающие данные. Это вычисление вычитания.
поплавок с = поплавок.Синтаксический Анализ(Текстовое Поле Textbox1.Текст.Заменить(",", "").Заменить(""., "")); //$46,534,798.18
поплавок д = поплавок.Синтаксический Анализ(Поле Textbox2.Текст.Заменить(",", "").Заменить(""., "")); //$44,441,222.00
TextBox3.Text = (c-d).ToString(); //4.65348 E+11
Richard MacCutchan
Ваши текстовые значения включают знак $ , который приведет к сбою вызова синтаксического анализа.
Computer Wiz99
Я заменяю их и все равно получаю ту же проблему.
поплавок с = поплавок.Синтаксический Анализ(TextBoxTBS1.Текст.Заменить(",", "").Заменить (""., "").Заменить("$", ""));
поплавок д = поплавок.Синтаксический Анализ(TextBoxTBS2.Текст.Заменить(",", "").Заменить (""., "").Заменить("$", ""));
Richard MacCutchan
Прекратите делать все эти вызовы Relace, они не нужны. Используйте вызов подстроки, чтобы пропустить знак $ :
float.Parse(TextBoxTBS1.Substring(1));
Лучше все-таки использовать метод tryparse, как уже предложил Фил.о'ниже.
if (!float.TryParse(TextBoxTBS1.Substring(1), out c)) { // Handle here the case where a float value could not be properly parsed }
Computer Wiz99
Поэтому я заменяю свой код на этот:
поплавок c, d;
если (!float.TryParse(TextBoxTBS1.Substring(1), out c))
{
}
если (!float.TryParse(TextBoxTBS2.Substring(1), out d))
{
}
но у меня есть ошибка с TextBox1.Substring(1). Я вижу под ним красную линию. Так где же происходит вычитание?
Richard MacCutchan
Извините, это была моя ошибка, Я забыл свойство Text. Так и должно быть:
if (!float.TryParse(TextBoxTBS1.Text.Substring(1), out c))