Я пытаюсь разобрать немецкое число из строки. Вот минимальный пример:
String stringValue = "1,00";
double value = NumberFormat.getInstance(Locale.GERMANY).parse(stringValue).doubleValue();
// value = 100.0 (locale machine from cmd, server jdk)
// value = 1.0 (locale machine from cmd, locale jdk)
Каким-то образом формат навсегда застрял на английском форматировщике. Я отладил строку и взглянул на symbols.decimalSeperator
, и это все еще точка.
Я должен признать, что я могу воспроизвести это поведение, только если я запускаю приложение с JDK с сервера в нашем Компания. Запустив его с моей локалью JDK, все работает нормально и, как ожидалось. Так что, возможно, локаль Locale
на сервере английская, но как это изменить мой жесткий код Locale.GERMANY
?
Мы используем Java 8.