Сбой разбора на симуляторе iOS - PullRequest
0 голосов
/ 31 октября 2019

Когда я пытаюсь разобрать строку в float на реальном устройстве, это успешно, но не на эмуляторе. Оба на iOS 13.1. Например, «81,5» преобразуется в 81,5 на реальном устройстве, но он конвертируется в 815 на эмуляторе

public static float StrToFloatDef(string value, float defValue)
{
      value = value.Replace('.', ',');

      float floatValue;

      if (float.TryParse(value.Trim(), out floatValue) == false)
           floatValue = defValue;

      return floatValue;
}

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

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

float.Parse(value, CultureInfo.InvariantCulture.NumberFormat);
0 голосов
/ 31 октября 2019

Ты прав, Джейсон.

Я использовал запятую как разделитель, и теперь она работает хорошо

float.TryParse(value.Trim(), NumberStyles.Any, new NumberFormatInfo() { NumberDecimalSeparator = "," }, out floatValue)
...