Если вы хотите использовать «,», как некоторые страны ЕС используют.Вы должны тщательно позаботиться о вашей локализации.
Посмотрите на Java API http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html
на valueOf, он сказал
To interpret localized string representations of a floating-point value, use subclasses of NumberFormat.
Например, этот код будет решатьваша проблема,
NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN);
double number = nf.parse(myString).doubleValue();
Одна важная вещь, вы должны не использовать что-то вроде
Locale.setDefault(something);
, потому что это может повлиять на всю JVM.Другими словами, это означает, что это может повлиять на другие коды, использующие локализацию.Более того, это может повлиять на другие приложения, которые находятся в той же JVM, если вы используете Container, например Servlet Container (например, общий хостинг Tomcat).
И большую часть времени, что-то вроде Locale.setDefault() может использоваться на вашем локальном компьютере, но вы не можете развернуть его на других серверах (общий хостинг tomcat), поскольку для их JRE может быть установлено разрешение, запрещающее такой метод.Я уверен, что большинство хороших хостинг-провайдеров сделали это.Если вы можете развернуть такой код на любом общедоступном Tomcats в любом хостинг-провайдере, я настоятельно рекомендую вам перейти на другую хостинговую компанию.