mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
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
2 changed files with 14 additions and 2 deletions
|
@ -97,6 +97,18 @@ class _LocaleTests(unittest.TestCase):
|
||||||
loc, set_locale))
|
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():
|
def test_main():
|
||||||
run_unittest(_LocaleTests)
|
run_unittest(_LocaleTests)
|
||||||
|
|
|
@ -2773,7 +2773,7 @@ parsenumber(const char *s)
|
||||||
if (imflag) {
|
if (imflag) {
|
||||||
c.real = 0.;
|
c.real = 0.;
|
||||||
PyFPE_START_PROTECT("atof", return 0)
|
PyFPE_START_PROTECT("atof", return 0)
|
||||||
c.imag = atof(s);
|
c.imag = PyOS_ascii_atof(s);
|
||||||
PyFPE_END_PROTECT(c)
|
PyFPE_END_PROTECT(c)
|
||||||
return PyComplex_FromCComplex(c);
|
return PyComplex_FromCComplex(c);
|
||||||
}
|
}
|
||||||
|
@ -2781,7 +2781,7 @@ parsenumber(const char *s)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
PyFPE_START_PROTECT("atof", return 0)
|
PyFPE_START_PROTECT("atof", return 0)
|
||||||
dx = atof(s);
|
dx = PyOS_ascii_atof(s);
|
||||||
PyFPE_END_PROTECT(dx)
|
PyFPE_END_PROTECT(dx)
|
||||||
return PyFloat_FromDouble(dx);
|
return PyFloat_FromDouble(dx);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue