diff options
author | Sergey B Kirpichev <skirpichev@gmail.com> | 2025-02-25 15:27:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-25 15:27:07 (GMT) |
commit | f39a07be47cd9219eaf0e538ae32ad8239c88e66 (patch) | |
tree | 1b57568378401b44c9ffd8d3f237b13694842b5c /Lib/test/test_float.py | |
parent | fa6a8140dd2a72da6df2a7dfafbf07045debf64d (diff) | |
download | cpython-f39a07be47cd9219eaf0e538ae32ad8239c88e66.zip cpython-f39a07be47cd9219eaf0e538ae32ad8239c88e66.tar.gz cpython-f39a07be47cd9219eaf0e538ae32ad8239c88e66.tar.bz2 |
gh-87790: support thousands separators for formatting fractional part of floats (#125304)
```pycon
>>> f"{123_456.123_456:_._f}" # Whole and fractional
'123_456.123_456'
>>> f"{123_456.123_456:_f}" # Integer component only
'123_456.123456'
>>> f"{123_456.123_456:._f}" # Fractional component only
'123456.123_456'
>>> f"{123_456.123_456:.4_f}" # with precision
'123456.1_235'
```
Diffstat (limited to 'Lib/test/test_float.py')
-rw-r--r-- | Lib/test/test_float.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py index f588e16..231b104 100644 --- a/Lib/test/test_float.py +++ b/Lib/test/test_float.py @@ -754,6 +754,28 @@ class FormatTestCase(unittest.TestCase): self.assertEqual(format(INF, 'f'), 'inf') self.assertEqual(format(INF, 'F'), 'INF') + # thousands separators + x = 123_456.123_456 + self.assertEqual(format(x, '_f'), '123_456.123456') + self.assertEqual(format(x, ',f'), '123,456.123456') + self.assertEqual(format(x, '._f'), '123456.123_456') + self.assertEqual(format(x, '.,f'), '123456.123,456') + self.assertEqual(format(x, '_._f'), '123_456.123_456') + self.assertEqual(format(x, ',.,f'), '123,456.123,456') + self.assertEqual(format(x, '.10_f'), '123456.123_456_000_0') + self.assertEqual(format(x, '.10,f'), '123456.123,456,000,0') + self.assertEqual(format(x, '>21._f'), ' 123456.123_456') + self.assertEqual(format(x, '<21._f'), '123456.123_456 ') + self.assertEqual(format(x, '+.11_e'), '+1.234_561_234_56e+05') + self.assertEqual(format(x, '+.11,e'), '+1.234,561,234,56e+05') + + self.assertRaises(ValueError, format, x, '._6f') + self.assertRaises(ValueError, format, x, '.,_f') + self.assertRaises(ValueError, format, x, '.6,_f') + self.assertRaises(ValueError, format, x, '.6_,f') + self.assertRaises(ValueError, format, x, '.6_n') + self.assertRaises(ValueError, format, x, '.6,n') + @support.requires_IEEE_754 def test_format_testfile(self): with open(format_testfile, encoding="utf-8") as testfile: |