mirror of
https://github.com/python/cpython.git
synced 2025-08-01 15:43:13 +00:00
Bug #1417699: Reject locale-specific decimal point in float()
and atof().
This commit is contained in:
parent
82c276ea33
commit
fcfff0a7fa
4 changed files with 27 additions and 3 deletions
|
@ -558,13 +558,24 @@ class BuiltinTest(unittest.TestCase):
|
|||
@run_with_locale('LC_NUMERIC', 'fr_FR', 'de_DE')
|
||||
def test_float_with_comma(self):
|
||||
# set locale to something that doesn't use '.' for the decimal point
|
||||
# float must not accept the locale specific decimal point but
|
||||
# it still has to accept the normal python syntac
|
||||
import locale
|
||||
if not locale.localeconv()['decimal_point'] == ',':
|
||||
return
|
||||
|
||||
self.assertEqual(float(" 3,14 "), 3.14)
|
||||
self.assertEqual(float(" +3,14 "), 3.14)
|
||||
self.assertEqual(float(" -3,14 "), -3.14)
|
||||
self.assertEqual(float(" 3.14 "), 3.14)
|
||||
self.assertEqual(float("+3.14 "), 3.14)
|
||||
self.assertEqual(float("-3.14 "), -3.14)
|
||||
self.assertEqual(float(".14 "), .14)
|
||||
self.assertEqual(float("3. "), 3.0)
|
||||
self.assertEqual(float("3.e3 "), 3000.0)
|
||||
self.assertEqual(float("3.2e3 "), 3200.0)
|
||||
self.assertEqual(float("2.5e-1 "), 0.25)
|
||||
self.assertEqual(float("5e-1"), 0.5)
|
||||
self.assertRaises(ValueError, float, " 3,14 ")
|
||||
self.assertRaises(ValueError, float, " +3,14 ")
|
||||
self.assertRaises(ValueError, float, " -3,14 ")
|
||||
self.assertRaises(ValueError, float, " 0x3.1 ")
|
||||
self.assertRaises(ValueError, float, " -0x3.p-1 ")
|
||||
self.assertEqual(float(" 25.e-1 "), 2.5)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue