Кажется, что у вас есть latString
в какой-то другой культуре, которая использует ,
в качестве тысячного разделителя , который просто игнорируется при преобразовании в плавающую точку:
"31,92002306867021" -> 3192002306867021 -> 3.19200230686702E+15
Сначала проверьте текущую культуру , может показаться, что он использует ,
в качестве десятичного разделителя :
string latString = "31,92002306867021";
// Current culture
double result = Convert.ToDouble(latString);
Если нет, вы можете попробовать заменить ,
текущим десятичным разделителем:
string latString = "31,92002306867021";
// be careful and culture specific: naive
// latString.Replace(",", ".")
// will cause problems with some cultures
// (e.g. ru-Ru which uses "." as a thousand separator)
string value = latString.Replace(",",
CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
double result = Convert.ToDouble(value);