mirror of https://github.com/python/cpython
Issue #3360: Fix incorrect parsing of "020000000000.0".
This commit is contained in:
parent
c83f113c8a
commit
64b7e501f4
|
@ -215,6 +215,10 @@ if 1:
|
||||||
self.assertEqual(eval("-0b000000000010"), -2)
|
self.assertEqual(eval("-0b000000000010"), -2)
|
||||||
self.assertEqual(eval("0o777"), 511)
|
self.assertEqual(eval("0o777"), 511)
|
||||||
self.assertEqual(eval("-0o0000010"), -8)
|
self.assertEqual(eval("-0o0000010"), -8)
|
||||||
|
self.assertEqual(eval("020000000000.0"), 20000000000.0)
|
||||||
|
self.assertEqual(eval("037777777777e0"), 37777777777.0)
|
||||||
|
self.assertEqual(eval("01000000000000000000000.0"),
|
||||||
|
1000000000000000000000.0)
|
||||||
|
|
||||||
def test_unary_minus(self):
|
def test_unary_minus(self):
|
||||||
# Verify treatment of unary minus on negative numbers SF bug #660455
|
# Verify treatment of unary minus on negative numbers SF bug #660455
|
||||||
|
|
|
@ -10,6 +10,9 @@ What's New in Python 2.6 beta 2?
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #3360: Fix incorrect parsing of '020000000000.0', which
|
||||||
|
produced a ValueError instead of giving the correct float.
|
||||||
|
|
||||||
- Issue #3083: Add alternate (#) formatting for bin, oct, hex output
|
- Issue #3083: Add alternate (#) formatting for bin, oct, hex output
|
||||||
for str.format(). This adds the prefix 0b, 0o, or 0x, respectively.
|
for str.format(). This adds the prefix 0b, 0o, or 0x, respectively.
|
||||||
|
|
||||||
|
|
|
@ -3139,15 +3139,6 @@ parsenumber(struct compiling *c, const char *s)
|
||||||
#endif
|
#endif
|
||||||
if (*end == 'l' || *end == 'L')
|
if (*end == 'l' || *end == 'L')
|
||||||
return PyLong_FromString((char *)s, (char **)0, 0);
|
return PyLong_FromString((char *)s, (char **)0, 0);
|
||||||
if (s[0] == '0') {
|
|
||||||
x = (long) PyOS_strtoul((char *)s, (char **)&end, 0);
|
|
||||||
if (x < 0 && errno == 0) {
|
|
||||||
return PyLong_FromString((char *)s,
|
|
||||||
(char **)0,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
x = PyOS_strtol((char *)s, (char **)&end, 0);
|
x = PyOS_strtol((char *)s, (char **)&end, 0);
|
||||||
if (*end == '\0') {
|
if (*end == '\0') {
|
||||||
if (errno != 0)
|
if (errno != 0)
|
||||||
|
|
Loading…
Reference in New Issue