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);
}
2 Kommentare zum Snippet