Feedback

C# - Robustes Auslesen von Double-Eingaben

Veröffentlicht von am 03.11.2013
(1 Bewertungen)
Unsere universellen Winforms-Editoren bieten als Rückgabevalue oft nur ein object-Feld an. Will man das in eine Zahleneingabe wandeln, muss man null, Leerangaben etc. oft extra berücksichtigen. Diese Routine bügelt alle Problemfälle weg, funktioniert aber nur, wenn kein Tausendertrennzeichen verwendet werden soll. Dafür dann aber in praktisch allen Ländern.

Die Routine ist als Erweiterungsmethode vorbereitet.
public static double EditValueToDouble(this object value)
{
    if (value == null) return 0;

    string str = value.ToString();
    if (str == "") return 0;
    if (str == "-") return 0;

    str = str.Replace(",", System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator);
    str = str.Replace(".", System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator);
    return System.Convert.ToDouble(str);
}
Abgelegt unter Konvertierung, Double.

2 Kommentare zum Snippet

Koopakiller schrieb am 03.11.2013:
Nette Idee,
du solltest nur den Namen von ToFloat in ToDouble ändern, damit es keine Verwirrung stiftet.

Vielleicht wäre das ganze als Erweiterungsmethode besser einsetzbar!?
Mario Noack schrieb am 03.11.2013:
Stimmt, der erste Einwand ist ganz und gar berechtigt. Die Basis der Routine kommt noch von Delphi Zeiten ;-) Habe ich aber geändert und auch gleich die Vorbereitung als Extension Methode eingebaut.
 

Logge dich ein, um hier zu kommentieren!