2015-04-22 4 views
0

У меня есть устаревшая программа (java 1.4), запущенная под Tomcat/Jboss, однако я скопировал ее на новый сервер (java 1.7), и это вызывает следующее исключение.Java NumberFormatException Legacy Code

java.lang.NumberFormatException: For input string: "0000000000000000009011,00" 
    sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1250) 
    java.lang.Double.valueOf(Double.java:504) 
    java.lang.Double.<init>(Double.java:597) 

Поскольку у меня нет доступа к источнику, есть ли способ исправить это? я не пробовал с java 1.4 на данный момент

+1

Я думаю, его не из-за версии Java, удалите запятую. – Kartic

ответ

0

Вы хотите посмотреть параметры jvm на старом сервере. Параметры вашего языка изменят запятую на точку, так что вам не нужны какие-либо изменения кода.

0

Я думаю, что это не из-за версии java. Заменить comma(,) с "" или period(.)

Например conside строку: String str = "0000000000000000009011,00";

Теперь вы можете попробовать -

double result = Double.valueOf(str.replace(",", ".")); 

или

double result = Double.valueOf(str.replace(",", "")); 
0

Вместо использования NumberFormat для синтаксического анализа:

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); 
Number number = format.parse("0000000000000000009011,00"); 
double d = number.doubleValue(); 

Таким образом, вы можете выбрать правильный язык для представления чисел. В приведенном выше примере я использовал Францию ​​- они используют запятую для десятичной точки.