Преобразование строкового значения в значение с плавающей точкой

#c#

#c#

Вопрос:

В моем коде у меня есть преобразование строкового значения в значение с плавающей точкой. В моем коде: guns — массив (размер = 5) и Chargunsinformations — строковое значение.

 guns[gunsNum] = float.Parse(ChargunsInformation);
  

Unity выдает ошибку:

Исключение FormatException: входная строка была в неправильном формате. System.Number.Единый синтаксический анализ (System.Строковое значение, система.Глобализация.Параметры NumberStyles, система.Глобализация.NumberFormatInfo numfmt) (в <437ba245d8404784b9fbab9b439ac908>:0) системе.Одиночный.Синтаксический анализ (System.Строка s, System.Глобализация.Стиль NumberStyles, система.Глобализация.NumberFormatInfo info) (в <437ba245d8404784b9fbab9b439ac908>:0) Системе.Одиночный.Синтаксический анализ (System.Строка s, System.Поставщик IFormatProvider) (в <437ba245d8404784b9fbab9b439ac908>:0) системе.Преобразовать.ToSingle (система.Строковое значение) (в <437ba245d8404784b9fbab9b439ac908>:0) StartOfAllScript.Update () (в Assets/Scripts/Player Scripts/StartOfAllScript.cs:35)

Пожалуйста, помогите мне. Я пытался решить эту проблему в течение 2 часов.

Комментарии:

1. Что такое value в ChargunsInformation и почему вы добавили p тег для этого вопроса? Вы можете попробовать float.TryParse() вместо float.parse()

Ответ №1:

Я предполагаю, что проблема связана с культурой вашей системы. Пожалуйста, попробуйте следующий фрагмент кода

 guns[gunsNum] = float.Parse(ChargunsInformation, CultureInfo.InvariantCulture);
  

Комментарии:

1. Ресурсы Скрипты Скрипты проигрывателя StartOfAllScript.cs(34,66): ошибка CS0103: имя ‘CultureInfo’ не существует в текущем контексте, что дает мне unity

2. Вы добавили систему. Пространство имен глобализации? Не могли бы вы, пожалуйста, указать значение, которое вы хотите преобразовать, и текущую культуру вашей системы?

3. Да, я добавил. Я хочу преобразовать Chargunsinformations в значение массива guns

4. Какое значение в переменной «Chargunsinformations» вы хотите преобразовать? И не могли бы вы, пожалуйста, указать текущую культуру вашей системы. итак, полезно воспроизвести проблему?

5. Chargunsinformations — строковое значение, которое я хочу преобразовать. И моя культура — ru-RU