Я пытаюсь создать двойной объект из десятичной строки, где запятая является плавающим разделителем.Преобразование строкового значения с запятой в десятичное с правильной локалью
Передача аргументов локали в виртуальную машину:
-Duser.country=BR
-Duser.language=PT
String value = "500,21";
Double dob = new Double(value);
Getting исключение:
java.lang.NumberFormatException: Для ввода строки: "500,21" в sun.misc.FloatingDecimal.readJavaFormatString (FloatingDecimal.java:1224) на java.lang.Double.valueOf (Double.java:475) в java.lang.Double. (Double.java:567)
Просто замените запятую точкой и она всегда будет работать;) – engineercoding
Я знаю, но я прошу относительно изменения локали – Tirmean
Разбор и форматирование объектов Double, Integer, Float и др. Очень плохие (и старые) , Они не поддерживают Locales: см. Javadoc для Double.valueOf (который, как мне кажется, вызывает вызов конструктора). Итак, как говорит Мена, вы должны использовать NumberFormat. –