środa, 14 września 2011

C# - parsowanie double z kropką i przecinkiem

Różne programy różnie zapisują liczbę zmiennoprzecinkową. Jedne używają kropki w celu oddzielenia części ułamkowej od części całkowitej. Na dodatek ten sam program może różnie zapisywać w zależności od ustawień systemu w którym jest uruchomiony.
Napisałem więc prostą funkcję, która próbuje skonwertować stringa do double:

private static double GetDouble(string value)
{
    double res;
    if (!double.TryParse(value,NumberStyles.Any, CultureInfo.CurrentCulture, out res))
    {
        if (!double.TryParse(value, NumberStyles.Any, CultureInfo.GetCultureInfo("en-US"), out res))
        {
            if (!double.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out res))
            {
                res = double.NaN;
            }
        }
    }
    return res;
}

Brak komentarzy:

Prześlij komentarz