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.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

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!