System.FormatException возникает при попытке преобразовать числовую строку в числовой тип данных

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 942460
Источник: Служба технической поддержки Майкрософт
БЫСТРАЯ ПУБЛИКАЦИЯ.
СТАТЬИ ИЗ СЕРИИ "БЫСТРАЯ ПУБЛИКАЦИЯ" ПРЕДОСТАВЛЯЮТ СВЕДЕНИЯ НЕПОСРЕДСТВЕННО ИЗ СЛУЖБЫ ПОДДЕРЖКИ МАЙКРОСОФТ. СВЕДЕНИЯ, СОДЕРЖАЩИЕСЯ В НАСТОЯЩЕМ ДОКУМЕНТЕ СОЗДАЕТСЯ В ОТВЕТ НА НОВЫХ ИЛИ УНИКАЛЬНЫЕ ТЕМЫ, ИЛИ ДОПОЛНЯЮТ ДРУГИЕ СВЕДЕНИЯ БАЗЫ ЗНАНИЙ.
Действие


При попытке привести числовой тип числовых данных, используя код, аналогичный приведенному ниже.

Dim strInput As String = "10"
Dim intResult As Integer = 0
Try
intResult = Convert.ToInt16(strInput)
CATCH ex исключений
MessageBox.Show ("Ошибка:" & ex. Сообщение)
Оператор End Try
Результат


Вы получите System.FormatException со следующей ошибки и трассировку стека.

"Входная строка имела неверный формат."

В библиотеке mscorlib.dll возникла первой возможности захвата исключений типа «System.FormatException»
в System.Number.StringToNumber (строка str, параметры NumberStyles, NumberBuffer & номер, информация NumberFormatInfo, логическое parseDecimal)
в System.Number.ParseInt32 (String s, стиля NumberStyles, NumberFormatInfo info)
в System.Int16.Parse (String s, стиля NumberStyles, NumberFormatInfo info)
в System.Convert.ToInt16 (строковое значение)
в TypeConversionTest.Form1.cmdConvert_Click (Object sender, EventArgs e) 7 C:\Source\TypeConversionTest\TypeConversionTest\Form1.vb:line
Причина


Неверное значение в имеется следующее значение в реестре Windows:

HKEY_CURRENT_USER\Control Panel\International\sPositiveSign

Это значение должно быть пустым для большинства параметров английского языка. Обратите внимание, что при возникновении этой ошибки значение может содержать пустые значения, визуально, но может содержать пробелы или непечатаемые знаки.
Решение


Хотя можно непосредственно редактировать значение ключа проблемы, рекомендуется изменить региональные параметры для другого языка и региона и сбросить его в нужное положение:

1. Откройте приложение «язык и региональные стандарты» на панели управления.
2. Примечание текущий формат.
3. Изменение текущего формата английский (Австралия)
4. нажмите кнопку Применить.
5. Изменение текущего формата отмечены формата, например, английский (США).
6. нажмите кнопку Применить, а затем нажмите кнопку ОК.

Это действие восстанавливает все значения в разделе реестра HKEY_CURRENT_USER\Control Panel\International.
Дополнительные сведения



ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
КОРПОРАЦИЯ МАЙКРОСОФТ ИЛИ ЕЕ ПОСТАВЩИКОВ СООТВЕТСТВУЮЩИХ НЕ ДЕЛАЮТ НИКАКИХ УТВЕРЖДЕНИЙ О ПРИГОДНОСТИ, НАДЕЖНОСТЬ И ТОЧНОСТЬ ДАННЫХ И СВЯЗАННЫЕ РИСУНКИ, СОДЕРЖАЩИЕСЯ В НАСТОЯЩЕМ ДОКУМЕНТЕ. ТАКОЙ ИНФОРМАЦИИ И СВЯЗАННЫЕ РИСУНКИ ПРЕДОСТАВЛЯЮТСЯ "КАК ЕСТЬ" БЕЗ ГАРАНТИЙ ЛЮБОГО РОДА. КОРПОРАЦИЯ МАЙКРОСОФТ И ЕЕ ПАРТНЕРАМ СООТВЕТСТВУЮЩИХ НАСТОЯЩИМ ОТКАЗЫВАЮТСЯ ОТ ВСЕХ ГАРАНТИЙ И УСЛОВИЙ ДАННОЙ ИНФОРМАЦИИ И СВЯЗАННЫХ ГРАФИЧЕСКИХ ОБЪЕКТОВ, ВКЛЮЧАЯ ВСЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ И УСЛОВИЯ ТОВАРНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, ОТКАЗЫВАЕМСЯ, НАЗВАНИЯ И НЕНАРУШЕНИЯ. ВЫ ЯВНЫМ ОБРАЗОМ СОГЛАСИТЕСЬ, ЧТО НЕ КОРПОРАЦИИ МАЙКРОСОФТ И ЕЕ ПОСТАВЩИКИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ДЛЯ ЛЮБОЙ ПРЯМОЙ, КОСВЕННЫЙ, PUNITIVE, СЛУЧАЙНЫЙ, ОСОБЫЙ, ПРЯМОЙ, УЩЕРБ ИЛИ КАКОЙ-ЛИБО УЩЕРБА НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ВКЛЮЧАЯ, БЕЗ ОГРАНИЧЕНИЙ, УЩЕРБ ДЛЯ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ, ПОТЕРЮ ПРЕТЕНЗИИ, В ЛЮБОМ СВЯЗАНА С ИСПОЛЬЗОВАНИЕМ ИЛИ НЕВОЗМОЖНОСТЬ ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИИ И СВЯЗАННОГО РИСУНКА, СОДЕРЖАЩЕГОСЯ ЗДЕСЬ , НА ОСНОВЕ КОНТРАКТА, ГРАЖДАНСКИМ ПРАВОНАРУШЕНИЕМ, НЕБРЕЖНОСТЬЮ, СТРОГОЙ ОТВЕТСТВЕННОСТЬЮ, ИЛИ В ПРОТИВНОМ СЛУЧАЕ, ДАЖЕ ЕСЛИ КОРПОРАЦИЯ МАЙКРОСОФТ ИЛИ ЕЕ ПОСТАВЩИКОВ ЗАРАНЕЕ БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ УЩЕРБА.
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.
Свойства

Номер статьи: 942460 — последний просмотр: 07/25/2015 15:14:00 — редакция: 5.0

Microsoft Visual Basic 2005

  • kbnomt kbrapidpub kbmt KB942460 KbMtru
Отзывы и предложения