From: Guido van Rossum Date: Tue, 4 Nov 1997 17:12:33 +0000 (+0000) Subject: Fix due to Bill Noon for problem discovered by Ken Manheimer: packing X-Git-Tag: v1.5b1~130 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8f3c812e22d1fc2a70c1f1c2b56262553e8d9c34;p=python Fix due to Bill Noon for problem discovered by Ken Manheimer: packing 0.0 as float or double would yield the representation for 1.0! --- diff --git a/Modules/structmodule.c b/Modules/structmodule.c index 4b01f4bc2d..9b39919812 100644 --- a/Modules/structmodule.c +++ b/Modules/structmodule.c @@ -167,7 +167,7 @@ pack_float(x, p, incr) f = ldexp(f, 126 + e); e = 0; } - else { + else if (!(e == 0 && f == 0.0)) { e += 127; f -= 1.0; /* Get rid of leading 1 */ } @@ -239,7 +239,7 @@ pack_double(x, p, incr) f = ldexp(f, 1022 + e); e = 0; } - else { + else if (!(e == 0 && f == 0.0)) { e += 1023; f -= 1.0; /* Get rid of leading 1 */ }