Hier eine kleine Funktion die einen übergebenen Wert in einen Decimal-Wert umwandelt:
static public decimal ToValidDecimal(object n, NumberFormatInfo nfi ) {
if(n==null) return 0;
if(n.GetType() == typeof(decimal)) return (decimal)n;
if(n.GetType() == typeof(int)) return (decimal)n;
if(n.GetType() == typeof(long)) return (decimal)n;
if(n.GetType() == typeof(string)) {
try {
return decimal.Parse( (string)n, nfi );
}
catch( Exception ) {
return (decimal)0;
}
}
return (decimal)0;
}