diff Objects/floatobject.c @ 1049:2ed511171809 legacy-trunk

Made builtins int(), long(), float(), oct() and hex() more generic.
author Guido van Rossum <guido@python.org>
date Sat, 12 Sep 1992 11:09:23 +0000
parents 03de67080c95
children c4cd0d9d8281
line wrap: on
line diff
--- a/Objects/floatobject.c	Fri Sep 11 23:55:51 1992 +0000
+++ b/Objects/floatobject.c	Sat Sep 12 11:09:23 1992 +0000
@@ -318,6 +318,33 @@
 	return 1; /* Can't do it */
 }
 
+static object *
+float_int(v)
+	object *v;
+{
+	double x = getfloatvalue(v);
+	/* XXX should check for overflow */
+	/* XXX should define how we round */
+	return newintobject((long)x);
+}
+
+static object *
+float_long(v)
+	object *v;
+{
+	double x = getfloatvalue(v);
+	return dnewlongobject(x);
+}
+
+static object *
+float_float(v)
+	object *v;
+{
+	INCREF(v);
+	return v;
+}
+
+
 static number_methods float_as_number = {
 	float_add,	/*nb_add*/
 	float_sub,	/*nb_subtract*/
@@ -337,6 +364,11 @@
 	0,		/*nb_xor*/
 	0,		/*nb_or*/
 	float_coerce,	/*nb_coerce*/
+	float_int,	/*nb_int*/
+	float_long,	/*nb_long*/
+	float_float,	/*nb_float*/
+	0,		/*nb_oct*/
+	0,		/*nb_hex*/
 };
 
 typeobject Floattype = {