summaryrefslogtreecommitdiffstats
path: root/Include/floatobject.h
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-12-10 22:28:56 (GMT)
committerChristian Heimes <christian@cheimes.de>2007-12-10 22:28:56 (GMT)
commit284d9276250d78e8dfe59dc9a64cb0422265148b (patch)
treeaf50d506dcace51e3fe2084546320fa5f5ec3bb1 /Include/floatobject.h
parent8c3d0f7839a380d322428b2284e169d156e26736 (diff)
downloadcpython-284d9276250d78e8dfe59dc9a64cb0422265148b.zip
cpython-284d9276250d78e8dfe59dc9a64cb0422265148b.tar.gz
cpython-284d9276250d78e8dfe59dc9a64cb0422265148b.tar.bz2
Backport of r59456:59458 from py3k to trunk
Issue #1580: New free format floating point representation based on "Floating-Point Printer Sample Code", by Robert G. Burger. For example repr(11./5) now returns '2.2' instead of '2.2000000000000002'. Thanks to noam for the patch! I had to modify doubledigits.c slightly to support X64 and IA64 machines on Windows. I also added the new file to the three project files.
Diffstat (limited to 'Include/floatobject.h')
-rw-r--r--Include/floatobject.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/Include/floatobject.h b/Include/floatobject.h
index be1a80c..85537f1 100644
--- a/Include/floatobject.h
+++ b/Include/floatobject.h
@@ -86,6 +86,10 @@ PyAPI_FUNC(void) PyFloat_AsString(char*, PyFloatObject *v);
PyAPI_FUNC(int) _PyFloat_Pack4(double x, unsigned char *p, int le);
PyAPI_FUNC(int) _PyFloat_Pack8(double x, unsigned char *p, int le);
+/* Used to get the important decimal digits of a double */
+PyAPI_FUNC(int) _PyFloat_Digits(char *buf, double v, int *signum);
+PyAPI_FUNC(void) _PyFloat_DigitsInit(void);
+
/* The unpack routines read 4 or 8 bytes, starting at p. le is a bool
* argument, true if the string is in little-endian format (exponent
* last, at p+3 or p+7), false if big-endian (exponent first, at p).