Рейтинг:
6
OriginalGriff
Во - первых, округление работает только со значениями с плавающей запятой-попытка округлить целые числа не сработает.
Во-вторых, деление любого числа (кроме нуля) само по себе всегда даст одно и то же значение: единицу. А предельное значение единицы равно единице.
В-третьих, сделайте себе одолжение и перестаньте использовать имена Visual Studio по умолчанию для всего - вы можете помнить, что" TextBox8 " - это номер мобильного телефона сегодня, но когда вам нужно будет изменить его через три недели, вы это сделаете? Используйте описательные имена - например, "tbMobileNo" - и ваш код станет легче читать, более самодокументируемым, более легким в обслуживании-и на удивление быстрее кодировать, потому что Intellisense может добраться до" tbMobile "за три нажатия клавиш, где" TextBox8 " занимает размышление и 8 нажатий клавиш...
Сначала выполните преобразования - и вместо этого используйте TryParse, так как он позволяет вам реагировать на ошибки пользовательского ввода вместо сбоя приложения, - затем используйте преобразованные значения и, наконец, генерируйте выходные данные:
double myValue;
if (string.IsNullOrWhitespace(myTextBox.Text) || !double.TryParse(myTextBox.Text, out myValue))
{
// Report problem to user
return;
}
double myOtherValue;
...
//Use myValue and myOtherValue, and myYetAnotherValue here and generate your results.
double myResult = ...
//And finally output.
myOutputTextBox.Text = myResult.ToString();
Это намного яснее, что происходит, и намного проще отлаживать, где есть проблема.
OriginalGriff
- Простите? Вы хотите попробовать это еще раз, но объяснить более подробно-потому что это мало или ничего не значит для меня как предложение...
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
OriginalGriff
Поэтому преобразуйте все значения в двойники, используя код, который я дал вам вчера, а затем округлите его.
Вы не можете просто ожидать, что передадите целое текстовое поле математическому методу - он не знает, что с ним делать!
OriginalGriff
Прекратите приставлять к переменным префиксы типа "tb", пока не узнаете, что это значит и почему некоторые старые разработчики делают это: в данном случае это означает, что переменная является текстовым полем, которым она явно не является.
Используйте IsNullOrWhiteSpace вместо IsNullOrEmpty - он делает то же самое, но отбрасывает записи, которые также являются пробелами.
А затем используйте TryParse вместо Convert - он проверяет наличие ошибок пользователя, а не сбой вашего приложения.
Прочтите то, что я написал, вместо того, чтобы игнорировать код - или вообще нет никакого смысла его печатать!
OriginalGriff
Нет, это не так:
двойной tbTrailer_Needed;
Это двойник...
Member 12349103
Который возвращает значение textbox Trailer_Needed