diff options
Diffstat (limited to 'libstdc++-v3/include/bits/locale_facets.tcc')
-rw-r--r-- | libstdc++-v3/include/bits/locale_facets.tcc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index ae3a102ff44..0301781a2c3 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -1153,7 +1153,11 @@ namespace std __ws[__p - __ws] = __dec; // Add grouping, if necessary. - if (__lc->_M_use_grouping) + // N.B. Make sure to not group things like 2e20, i.e., no decimal + // point, scientific notation. + if (__lc->_M_use_grouping + && (__p || __len < 3 || (__cs[1] != 'e' && __cs[2] != 'e' + && __cs[1] != 'E' && __cs[2] != 'E'))) { // Grouping can add (almost) as many separators as the // number of digits, but no more. |