mirror of
https://github.com/python/cpython.git
synced 2024-11-25 10:54:51 +08:00
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!
This commit is contained in:
parent
25c649fdf2
commit
8f3c812e22
@ -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 */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user