Improve exception message raised by PyFloat_AsDouble if the object does not
have a nb_float slot.  This matches what PyInt_AsLong does.
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 36e861e..924b312 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -202,12 +202,16 @@
 	if (op && PyFloat_Check(op))
 		return PyFloat_AS_DOUBLE((PyFloatObject*) op);
 
-	if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL ||
-	    nb->nb_float == NULL) {
+	if (op == NULL) {
 		PyErr_BadArgument();
 		return -1;
 	}
 
+	if ((nb = op->ob_type->tp_as_number) == NULL || nb->nb_float == NULL) {
+		PyErr_SetString(PyExc_TypeError, "a float is required");
+		return -1;
+	}
+
 	fo = (PyFloatObject*) (*nb->nb_float) (op);
 	if (fo == NULL)
 		return -1;