diff options
author | Christian Heimes <christian@cheimes.de> | 2007-12-10 22:28:56 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2007-12-10 22:28:56 (GMT) |
commit | 284d9276250d78e8dfe59dc9a64cb0422265148b (patch) | |
tree | af50d506dcace51e3fe2084546320fa5f5ec3bb1 /Include/floatobject.h | |
parent | 8c3d0f7839a380d322428b2284e169d156e26736 (diff) | |
download | cpython-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.h | 4 |
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). |