Кто-нибудь знает, почему цифры от 0,001 до 0,009 отображаются в String с конечным 0, а другие номера - нет. например цифр от 0,01 до 0,09 нет.
System.out.println(Locale.getDefault());
for (int i = 0; i <= 20; i++)
System.out.println(i / 1e3);
печатает
en_GB
0.0
0.0010
0.0020
0.0030
0.0040
0.0050
0.0060
0.0070
0.0080
0.0090
0.01
0.011
0.012
0.013
0.014
0.015
0.016
0.017
0.018
0.019
0.02
EDIT Код для DecimalFormat не зависит от языкового стандарта. Если я запустил
for (Locale l : Locale.getAvailableLocales()) {
Locale.setDefault(l);
System.out.println(l + " " + 1 / 1e3);
}
на Java 6 update 26 на Ubuntu 11.04 Я получаю
ja_JP 0.0010
es_PE 0.0010
en 0.0010
... many locales with the same result ...
sv_SE 0.0010
da_DK 0.0010
es_HN 0.0010
на Java 7 в той же системе, я получаю
ms_MY 0.001
ar_QA 0.001
is_IS 0.001
... many locales with the same result ...
el_CY 0.001
hu 0.001
fr_FR 0.001