Speichert man Fließkommazahlen auf unterschiedlichen Systemen als String ab, kommt es vor, dass diese kulturabhängig formatiert werden. Beim Parsen solcher Strings treten dann Fehler auf, weil das System z.B. nicht mit dem Decimalseparator klarkommt.
Das Problem kann man umgehen, indem man die Strings mittels CultureInfo.InvariantCulture umwandelt:
double v = 3.14; string value = v.ToString(CultureInfo.InvariantCulture); // value == "3.14"
Das Einlesen muss dann ebenfalls über CultureInfo.InvariantCulture erfolgen:
string value = "3.14"; double dValue = 0.0; if (double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out dValue)) { ... }