public static Double UnboxDouble(object value) { if (value is Double) return (Double)value; if (value is IConvertible) return CheckNumericPromotion(value).ToDouble(null); return (Double)value; }