Почему если в String.formant() передать Locale.ENGLISH, дробные числа выдает с точкой, а с другой локалью выдает с запятой?
String.format(Locale.ENGLISH, "%.5f", 62.23);
Исторически сложилось, что в разных странах используются разные символы для разделения дробной и целой части числа и в качестве разделителей групп разрядов (точно так же, как в разных странах используется разный формат даты). Подробнее о разделителях можно прочесть здесь.
Об использоании локалей в Java имеется статья на сайте Oracle, где в таблице 1 показаны примеры чисел с применением разных локалей: http://www.oracle.com/us/technologies/java/locale-140624.html
Сооответственно, вы можете использовать конкретную локаль для вывода чисел в том формате, в каком нужно вам, либо не передавать локаль и будут использованы текущие настройки операционной системы.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей