public static Single UnboxSingle(object value) { if (value is Single) return (Single)value; if (value is IConvertible) return CheckNumericPromotion(value).ToSingle(null); return (Single)value; }