Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
4.5.1, 6.4
-
None
-
-
13
-
cb54da236 (dev), 4931fe9b0 (dev), 507836911 (dev)
-
Foundation Sprint 74, Foundation Sprint 75, Foundation Sprint 76
Description
TIL: some locales in CLDR do not have a single-character exponent separator.
- 25 Arabic-based locales use "اس",
- 11 Arabic-based locales use "×۱۰^" (albeit some of them are marked AnyScript),
- 8 Latin-script locales use "×10^" (Scandinavia, Lithuania and Estonia),
- 3 Latin-script locales use "·10^" (Northern Sami).
QLocale has been using the first character of each of these as the exponent separator in relevant locales (and I've never seen it reported as a bug).
Naturally, we should also check the other "single-character" data in the API actually are for all locales; a check in the generator script can take care of that.
(For reference, seven locales use "e" (C, English (Australia, Slovenia), Greek, Slovak, Slovenian), 569 use "E" at least officially; but that includes several English locales (US, GB) in which "e" is at least sometimes used; and Ukrainian uses "Е", which may look like "E" but is Cyrillic, hinting that some other Cyrillic scripts might, in practice, also use this. These 577 do use single-character exponents; with the above, QLocaleData has 624 locales in CLDR v41.)
Attachments
Issue Links
- resulted from
-
QTBUG-81756 QLocale's number parsing uses 'e' both as a digit and as exponent separator
- Closed
- resulted in
-
QTBUG-113443 QLocale::toDouble() fails to convert a string with Latin "e" or "E" as exponent separator in Ukrainian locale
- Closed
- split to
-
QTBUG-108339 Use DFSAs to handle number conversion in QLocale
- Reported