|
karakalpak 3 / 3 / 1 Регистрация: 27.11.2010 Сообщений: 161 |
||||
|
1 |
||||
Ошибка «Входная строка имела неверный формат»01.10.2011, 17:11. Показов 134820. Ответов 23 Метки нет (Все метки)
Здравствуйте!
__________________
0 |
|
kolorotur 16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,745 |
||||||||||||
|
01.10.2011, 17:19 |
2 |
|||||||||||
|
И так есть хочется, а тут еще вы со своими беляшами
Скорее всего ошибка выскакивает на этой строке.
А это здесь зачем?
0 |
|
3 / 3 / 1 Регистрация: 27.11.2010 Сообщений: 161 |
|
|
01.10.2011, 17:22 [ТС] |
3 |
|
Вероятно, во втором текстбоксе вы вводите значение, которое не парсится в десятичное число. Например, «2A.345» А точнее?
0 |
|
kolorotur 16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,745 |
||||||||
|
01.10.2011, 17:37 |
4 |
|||||||
|
Так а куда точнее?
Сначала вы считываете текст из textBox1 и перегоняете его в double. Если пользователь ввел не число, а какую-нибудь ерунду, то выскочит исключение FormatException. В вашем коде абсолютно правильно конвертирование текста в число вложено в блок try/catch чтобы в случае чего это исключение поймать и показать пользователю сообщение об ошибке. Можно сделать так:
0 |
|
3 / 3 / 1 Регистрация: 27.11.2010 Сообщений: 161 |
|
|
01.10.2011, 17:46 [ТС] |
5 |
|
нимание, вопрос: почему во втором случае вы не отслеживаете возможный выброс исключения? т.к я в своиствах поставил readonly
0 |
|
kolorotur 16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,745 |
||||
|
01.10.2011, 17:57 |
6 |
|||
|
Ага, второй текстбокс у вас служит для отображения общей стоимости.
1 |
|
karakalpak 3 / 3 / 1 Регистрация: 27.11.2010 Сообщений: 161 |
||||
|
01.10.2011, 18:02 [ТС] |
7 |
|||
|
В данном случае другой вопрос: зачем перегонять его значение в переменную summa еще до того, как она просчитана? Правда зачем
0 |
|
16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,745 |
|
|
01.10.2011, 18:11 |
8 |
|
Label1.Text=summa.ToString(«C») Можно, но тогда надо либо указать в какой культуре проводить форматирование, либо учесть что по дефолту будет использована культура, указанная в региональных настройках компьютера пользователя. Так что у кого-то цена будет показываться в рублях, у кого-то в долларах, у кого-то в евро и т.д. Со всеми нюансами местного форматирования.
1 |
|
Tronium13 0 / 0 / 0 Регистрация: 16.03.2015 Сообщений: 15 |
||||
|
16.03.2015, 15:57 |
9 |
|||
после вывода сообщения «Что поля не заполнены», выдает ошибку — «Входная строка имела не верный формат», подскажите где ошибка Ругается на 4 строку
0 |
|
kolorotur 16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,745 |
||||
|
16.03.2015, 16:09 |
10 |
|||
|
после вывода сообщения «Что поля не заполнены», выдает ошибку Если определили, что ввод неправильный, то зачем потом пытаться этот неправильный ввод обрабатывать?
Сообщение с ошибкой «упс» в вашем коде, кстати, в любом случае будет выдавать.
1 |
|
0 / 0 / 0 Регистрация: 16.03.2015 Сообщений: 15 |
|
|
16.03.2015, 16:20 |
11 |
|
вы правы, догадаться не смог…
0 |
|
16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,745 |
|
|
16.03.2015, 16:39 |
12 |
|
вы правы В чем?
догадаться не смог Посмотрите внимательней — там всего две строчки кода, где идет проверка и вывод сообщения.
0 |
|
0 / 0 / 0 Регистрация: 16.03.2015 Сообщений: 15 |
|
|
16.03.2015, 16:49 |
13 |
|
Сообщение от Tronium13 в том что будет появляться все равно решить проблему так и не смог…даже гугл не смог помочь
0 |
|
16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,745 |
|
|
16.03.2015, 17:17 |
14 |
|
решить проблему так и не смог Я, конечно, могу тупо указать на ошибку, но в данном случае это будет антипедагогично.
0 |
|
0 / 0 / 0 Регистрация: 16.03.2015 Сообщений: 15 |
|
|
16.03.2015, 17:34 |
15 |
|
но в данном случае это будет антипедагогично я все понимаю, но найти не могу смысл ошибки моей, не в какую, может слишком глубоко капаю
0 |
|
kolorotur 16930 / 12507 / 3286 Регистрация: 17.09.2011 Сообщений: 20,745 |
||||||||
|
16.03.2015, 17:43 |
16 |
|||||||
|
может слишком глубоко капаю Мне тоже так кажется. С ошибкой:
Без ошибки:
1 |
|
0 / 0 / 0 Регистрация: 16.03.2015 Сообщений: 15 |
|
|
16.03.2015, 17:49 |
17 |
|
Мне тоже так кажется. -_- без комментариев ps спасибо подскажите тему с ошибками, по типу «Входная строка имела неверный формат.» выдает уже другую ошибку, по тому же коду…
0 |
|
115 / 116 / 52 Регистрация: 19.12.2014 Сообщений: 612 |
|
|
16.03.2015, 18:22 |
18 |
|
Tronium13,
0 |
|
Tronium13 0 / 0 / 0 Регистрация: 16.03.2015 Сообщений: 15 |
||||
|
16.03.2015, 23:07 |
19 |
|||
|
Tronium13,
я пытаюсь сделать расчет с пустыми полями, после чего получается такая ошибка вот в коде, заполняя тексбокс 1 и 2, подсчет идет, если пытаюсь пройти с пустыми полями, (он должен выдать ошибку что поля не были заполнены), выдает ошибку в коде, на 7 строку
0 |
|
lokilo 115 / 116 / 52 Регистрация: 19.12.2014 Сообщений: 612 |
||||||||
|
17.03.2015, 02:05 |
20 |
|||||||
|
Tronium13,
Вот ваш код, вы наверное не смотрите или не хотите внимательно смотреть у вас есть условие if, после него идет код, в него нужно ставить else, чтобы он выполнялся когда поля не пустые, а когда пустые не выполнялся
0 |
В соответствии с Приказом Федеральной службы по регулированию алкогольного рынка от 17 декабря 2020 года № 396 изменились формы алкогольных деклараций, представляемых в Росалкогольрегулирование.
Программа Декларант-Алко не будет поддерживаться и дорабатываться, а значит с ее помощью нельзя будет работать с новыми формами деклараций, а ее пользователям нужно будет найти альтернативное решение.
ЦентрИнформ для фиксации всех необходимых данных в ЕГАИС и формирования деклараций для отправки в Росалкогольрегулирование предлагает ряд программных решений для всех участников алкогольного рынка.
Master UTM – программа для передачи данных в ЕГАИС от организаций-производителей и импортёров алкогольной продукции, этилового спирта, спиртосодержащей пищевой и непищевой продукции, в том числе фармацевтической продукции, а также перевозчиков ЭС и НССП. Формирует декларации по всем новым формам: 1, 2, 3, 4, 5, 6, 7, 8, 9 и 10.
Master UTM PRO – программа для производителей и импортёров маркируемой алкогольной продукции. Позволяет осуществлять заказ ФСМ и работать в режиме поштучного учёта производства и оборота алкогольной продукции с использованием агрегации данных. Формирует декларации по всем новым формам: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Master UTM RE – программа для оптовиков, ИП и организаций общепита для оптовой закупки/продажи алкогольной продукции и ее розничной реализации. Формирует декларации по формам: 2, 3, 4, 6, 7, 8, 9, 10.
Master UTM SHOP – программа для розничных магазинов и представляет собой полноценную товароучётную систему для осуществления закупки и последующей торговли крепким алкоголем и другими товарами. В состав программы также входит кассовое программное обеспечение — рабочее место кассира. Формирует декларации по формам: 7 и 8.
Контур.Маркет – программа для организаций и индивидуальных предпринимателей, работающих в розничной торговле, а также в сфере общественного питания. Предназначен для учета товаров и ингредиентов собственного производства, а также для взаимодействия с ЕГАИС. Формирует декларации по формам: 7 и 8.
По вопросам приобретения лицензий обращайтесь в ваш сервисный центр или по тел. +7(812)740-54-05 доб. 1221. Также можно заполнить форму обратной связи в разделе «Задать вопрос» на нашем сайте.
Данная статья относится к Microsoft Dynamics NAV для всех стран и всех языковых стандартов.
Симптомы
Предполагается запустить функцию службы Web с помощью параметра decimal в Microsoft Dynamics NAV 2009. При указании параметра decimal, возвращаемое значение повторяется. Если параметр отсутствует, появляется сообщение об ошибке неправильно:
«Входная строка имела неверный формат». Если параметр имеет тип Int, является ошибка «целое число не должно быть пустым. Целое число отсутствует или является недопустимым в выражении».
Эта проблема возникает в следующих продуктах:
-
Microsoft Dynamics NAV 2009 R2
-
2009 г. Пакет обновления 1 для Microsoft Dynamics NAV
Решение
Сведения об исправлении
Существует исправление от корпорации Майкрософт. Имеется раздел «Исправление доступно для загрузки» в верхней части этой статьи базы знаний. Если появляются проблемы загрузки установки исправления или другие вопросы технической поддержки, обратитесь к своему партнеру или зарегистрированы в плане поддержки непосредственно с корпорацией Майкрософт, можно обратитесь в службу технической поддержки Microsoft Dynamics и создайте новый запрос на обслуживание. Чтобы сделать это, посетите следующий веб-узел корпорации Майкрософт:
https://mbs.microsoft.com/support/newstart.aspxМожно также службу технической поддержки для Microsoft Dynamics по телефону с помощью этих ссылок для телефонов конкретной страны. Для этого посетите один из следующих веб-узлах корпорации Майкрософт:
Партнеры
https://mbs.microsoft.com/partnersource/support/Клиенты
Как получить исправление Microsoft Dynamics NAV или обновления файлов
После запроса исправления Microsoft Dynamics NAV, гиперссылка будет отправлено вам по электронной почте.
Это сообщение будет содержать гиперссылку и пароль. Можно использовать гиперссылки для загрузки исправления Microsoft Dynamics NAV или файлов обновления. Если щелкнуть гиперссылку, откроется диалоговое окно Загрузка файла — предупреждение безопасности . Затем вы предложение запустить, сохранить или отменить загрузку.
Если нажать кнопку выполнить, начнется процесс извлечения и загрузки. Необходимо указать папку для новых файлов и затем указать пароль.
Если нажать кнопку Сохранить, укажите путь для сохранения сжатого файла. При открытии сохраненного файла, вам будет предложено указать путь к файлам. Затем необходимо указать пароль, полученный в сообщении электронной почты.
Если нажать кнопку Отмена, процесс загрузки прекратится.
Установка исправления Microsoft Dynamics NAV или файл обновления
Обновления и исправления платформы Microsoft Dynamics NAV будут доступны как отдельные файлы. Чтобы установить Microsoft Dynamics NAV исправление или обновление, необходимо заменить существующие файлы установки Microsoft Dynamics NAV с исправление или обновление файлов. Чтобы сделать это, выполните следующие действия.
Шаг 1: Замените файлы в Microsoft Dynamics NAV классический клиент установки
В установке Microsoft Dynamics NAV классический клиент Замените следующие файлы с помощью исправления или обновления файла.
Нужна дополнительная помощь?
Сообщение = Входная строка имеет неправильный формат. в C#
В первом цикле while, который я конвертирую в double, возникает следующее исключение:
Я не уверен, что пишу неправильно или как исправить эту проблему. Я читаю из файла csv. Я протестировал, чтобы убедиться, что данные передаются от переменной к переменной, и это так. данные считываются моим Streamreader и сохраняются в одномерных массивах, которые сохраняются в переменной, которую я использую для сравнения точек данных для определения всех пиков и впадин в наборе данных
Это моя программа:
Первое, что я сделал бы, это запустил это в отладчике и установил прерывание при возникновении этого исключения. Затем вы можете посмотреть значение, которое не удалось проанализировать.
Строка, которую вы пытаетесь преобразовать, не является допустимым двойным значением. Может проблема в культуре? проверьте, есть ли в числах правильный десятичный разделитель, соответствующий языку вашей системы. Запятая или точка.
Ответы 2
Где-то в вашем CSV-файле есть значение, которое нельзя преобразовать в double. Чтобы избежать этого исключения, замените все ваши Convert.ToDouble на Double.TryParse . Это вернет true , если значение может быть проанализировано на double или false , если это невозможно.
Сказав это, остальная часть вашего кода не имеет смысла. Если вы посмотрите на эту часть, например:
[NBug] Входная строка имела неверный формат. #6900
The application crashes if the entered value has unexpected format.
E.g. Enter 0.5 instead of 0,5 (wrong decimal delimiter) or any string value.
Expected behaviour
The application correctly parses any decimap delimiter and shows error message if the entered value is not a number.
Steps to reproduce
Open plugin settings menu: Plugins -> Plugin settings
Select the «Find large files» plugin
Enter «0,5» (without quotes) into the «Find large files bigger than (Mb)» edit line.
Error Details
Additional information
Open the Settings dialog for the Find large files plugin.
Enter: 0.5
Environment
- Git Extensions 3.1.1.6049
- Build 2f87210
- Git 2.22.0.windows.1
- Microsoft Windows NT 10.0.17763.0
- .NET Framework 4.7.3416.0
- DPI 96dpi (no scaling)
The text was updated successfully, but these errors were encountered:
gerhardol commented Jul 8, 2019
To parse invariant is common, I can consider this to be a bug.
You get the same message if you enter garbage in the form
This is a shared control, but this seem to be the only where float or double is parsed.
A solution is to use invariant parsing.
Pushed a change, I will not add testcases to this though.
piroxiljin commented Jul 9, 2019 •
@RussKie All localization settings are set to Russian, except the default locale for non-unicode application, which is English (US).
Oh. And decimal separator is comma (,).
RussKie commented Jul 9, 2019
A fix maybe to parse like so:
gerhardol commented Jul 9, 2019
The culture is used correctly, you get the exception of you use other culture. Like decimal comma with English.
Invariant parsing can be used, see my commit. But you still get the exception with garbage so not much better. Validation should be done when leaving the text box.
Too much work to give any significant benefit for the complete fix. The invariant is simple but to add tests will be a pain.
Входная строка имеет неправильный формат в double.Parse
Я новичок в C #. Пытаюсь сделать калькулятор, но произошла следующая ошибка:
Входная строка была не в правильном формате.
Это краткое изложение кода:
Как преобразовать строку в двойной тип?
5 ответов
Чего вы пытаетесь достичь с помощью этого кода? Похоже, ваш алгоритм неверен.
Как говорили другие, этот код
Вызовет исключение, потому что пустая строка не может быть преобразована в Double!
Итак, мне интересно, почему вы сбросили свое поле. Я подумал об этом какое-то время, и, может быть, я понял, что ты пытаешься сделать. Допустим, вы вводите число в TextBox1. Затем вы нажимаете кнопку «-», чтобы вычесть, и затем вы хотите ввести второе число, чтобы просмотреть результат. Так ли это? Если это так, то написанный вами код не будет ждать вашего следующего ввода!
Фактически, когда вы нажимаете кнопку, она просто выполняет все написанные вами строки. Я бы написал вместо этого что-нибудь подобное.
РЕДАКТИРОВАТЬ: если строка пуста, это всегда будет вызывать исключения, поэтому я добавил элемент управления. Если строка пуста, значение становится нулевым.
Также помните, что метод Parse для выполнения преобразования полагается на культуру вашей операционной системы, поэтому попробуйте изменить свой код на
Вы также можете использовать
Метод для лучшей обработки исключений.
Поскольку вы очистили текстовое поле в предыдущей строке, преобразование Parse не выполняется.
Как он преобразует String.Empty в Double? Это неправильный способ. Например, если нажата кнопка «+», вы должны проверить, был ли уже номер. Если да, сложите числа и отобразите результат:
Похоже, что значение num2 следует извлекать из textbox2 , а не из textbox1 (вы устанавливаете textbox1.text как empty и пытаетесь разобрать его, чтобы снова удвоить)
Также не используйте Convert.ToDouble(textBox1.Text) напрямую. если пользователи вводят нечисловые значения, ваш код выйдет из строя. сначала проверьте, действительный ли это номер, всегда используйте doube.TryPrase()
Ваш код кажется трудным для понимания того, как используются button_13 и button_14;
How would I parse an empty string? int.Parse(Textbox1.text) gives me an error:
Input string was not in a correct format.
System.FormatException: Input string was not in a correct format.
If the text is empty (Textbox1.text = ''), it throws this error. I understand this error but not sure how to correct this.
Ry-♦
215k54 gold badges456 silver badges466 bronze badges
asked Feb 21, 2012 at 4:32
user575219user575219
2,30814 gold badges53 silver badges102 bronze badges
1
If you’re looking to default to 0 on an empty textbox (and throw an exception on poorly formatted input):
int i = string.IsNullOrEmpty(Textbox1.Text) ? 0 : int.Parse(Textbox1.Text);
If you’re looking to default to 0 with any poorly formatted input:
int i;
if (!int.TryParse(Textbox1.Text, out i)) i = 0;
answered Feb 21, 2012 at 5:41
3
Well, what do you want the result to be? If you just want to validate input, use int.TryParse instead:
int result;
if (int.TryParse(Textbox1.Text, out result)) {
// Valid input, do something with it.
} else {
// Not a number, do something else with it.
}
answered Feb 21, 2012 at 4:35
Ry-♦Ry-
215k54 gold badges456 silver badges466 bronze badges
if(!String.IsNullOrEmpty(Textbox1.text))
var number = int.Parse(Textbox1.text);
Or even better:
int number;
int.TryParse(Textbox1.Text, out number);
answered Feb 21, 2012 at 4:33
AlexAlex
34.7k5 gold badges76 silver badges89 bronze badges
Try this:
int number;
if (int.TryParse(TextBox1.Text, out number))
{
//Some action if input string is correct
}
Ry-♦
215k54 gold badges456 silver badges466 bronze badges
answered Feb 21, 2012 at 4:35
Victor ChekalinVictor Chekalin
6761 gold badge8 silver badges15 bronze badges
If the input is a number or an empty string this will work. It will return zero if the string is empty or else it will return the actual number.
int.Parse("0"+Textbox1.Text)
answered Sep 10, 2018 at 11:58
Deepu ReghunathDeepu Reghunath
7,5292 gold badges35 silver badges46 bronze badges
You could also use an extension method like this:
public static int? ToNullableInt32(this string s)
{
int i;
if (Int32.TryParse(s, out i)) return i;
return null;
}
Here’s the reference: How to parse a string into a nullable int in C# (.NET 3.5)
answered May 31, 2014 at 1:53
devinbostdevinbost
4,5302 gold badges42 silver badges50 bronze badges
you can wrap it with simple try/catch…
answered Feb 21, 2012 at 4:35
DesolatorDesolator
22.2k20 gold badges71 silver badges95 bronze badges
6
How would I parse an empty string? int.Parse(Textbox1.text) gives me an error:
Input string was not in a correct format.
System.FormatException: Input string was not in a correct format.
If the text is empty (Textbox1.text = ''), it throws this error. I understand this error but not sure how to correct this.
Ry-♦
215k54 gold badges456 silver badges466 bronze badges
asked Feb 21, 2012 at 4:32
user575219user575219
2,30814 gold badges53 silver badges102 bronze badges
1
If you’re looking to default to 0 on an empty textbox (and throw an exception on poorly formatted input):
int i = string.IsNullOrEmpty(Textbox1.Text) ? 0 : int.Parse(Textbox1.Text);
If you’re looking to default to 0 with any poorly formatted input:
int i;
if (!int.TryParse(Textbox1.Text, out i)) i = 0;
answered Feb 21, 2012 at 5:41
3
Well, what do you want the result to be? If you just want to validate input, use int.TryParse instead:
int result;
if (int.TryParse(Textbox1.Text, out result)) {
// Valid input, do something with it.
} else {
// Not a number, do something else with it.
}
answered Feb 21, 2012 at 4:35
Ry-♦Ry-
215k54 gold badges456 silver badges466 bronze badges
if(!String.IsNullOrEmpty(Textbox1.text))
var number = int.Parse(Textbox1.text);
Or even better:
int number;
int.TryParse(Textbox1.Text, out number);
answered Feb 21, 2012 at 4:33
AlexAlex
34.7k5 gold badges76 silver badges89 bronze badges
Try this:
int number;
if (int.TryParse(TextBox1.Text, out number))
{
//Some action if input string is correct
}
Ry-♦
215k54 gold badges456 silver badges466 bronze badges
answered Feb 21, 2012 at 4:35
Victor ChekalinVictor Chekalin
6761 gold badge8 silver badges15 bronze badges
If the input is a number or an empty string this will work. It will return zero if the string is empty or else it will return the actual number.
int.Parse("0"+Textbox1.Text)
answered Sep 10, 2018 at 11:58
Deepu ReghunathDeepu Reghunath
7,5292 gold badges35 silver badges46 bronze badges
You could also use an extension method like this:
public static int? ToNullableInt32(this string s)
{
int i;
if (Int32.TryParse(s, out i)) return i;
return null;
}
Here’s the reference: How to parse a string into a nullable int in C# (.NET 3.5)
answered May 31, 2014 at 1:53
devinbostdevinbost
4,5302 gold badges42 silver badges50 bronze badges
you can wrap it with simple try/catch…
answered Feb 21, 2012 at 4:35
DesolatorDesolator
22.2k20 gold badges71 silver badges95 bronze badges
6





Работает! Спасибо! 


