SF#1391872
Floating point literals don't work in non-US locale in 2.5. Patch and new locale tests by Hye-Shik Chang.
This commit is contained in:
parent
b9359c402b
commit
24f0fa97c5
|
@ -97,6 +97,18 @@ class _LocaleTests(unittest.TestCase):
|
|||
loc, set_locale))
|
||||
|
||||
|
||||
def test_float_parsing(self):
|
||||
# Bug #1391872: Test whether float parsing is okay on European
|
||||
# locales.
|
||||
for loc in candidate_locales:
|
||||
try:
|
||||
setlocale(LC_NUMERIC, loc)
|
||||
except Error:
|
||||
continue
|
||||
self.assertEquals(int(eval('3.14') * 100), 314)
|
||||
self.assertEquals(int(float('3.14') * 100), 314)
|
||||
|
||||
|
||||
|
||||
def test_main():
|
||||
run_unittest(_LocaleTests)
|
||||
|
|
|
@ -2773,7 +2773,7 @@ parsenumber(const char *s)
|
|||
if (imflag) {
|
||||
c.real = 0.;
|
||||
PyFPE_START_PROTECT("atof", return 0)
|
||||
c.imag = atof(s);
|
||||
c.imag = PyOS_ascii_atof(s);
|
||||
PyFPE_END_PROTECT(c)
|
||||
return PyComplex_FromCComplex(c);
|
||||
}
|
||||
|
@ -2781,7 +2781,7 @@ parsenumber(const char *s)
|
|||
#endif
|
||||
{
|
||||
PyFPE_START_PROTECT("atof", return 0)
|
||||
dx = atof(s);
|
||||
dx = PyOS_ascii_atof(s);
|
||||
PyFPE_END_PROTECT(dx)
|
||||
return PyFloat_FromDouble(dx);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue