Java - ошибка расчета - PullRequest
       34

Java - ошибка расчета

1 голос
/ 01 февраля 2012

Я написал следующий код, чтобы определить разницу между двумя числами с плавающей запятой и двумя десятичными разрядами:

double p = (Math.round((Double.parseDouble(a) - Double.parseDouble(a))*100))/100;

a и b - это значения в массиве String, которые представляют собой числа с десятичными разрядами, но, очевидно, в формате String. Я пытался преобразовать числа String в двойные числа и выполнить с ними вычисления, но, похоже, это не работает, и выдает эту ошибку:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "N/A"
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    at java.lang.Double.parseDouble(Unknown Source)

Дополнительная информация: он использует данные из Интернета и, кажется, работал раньше, но теперь, похоже, что-то вроде ошибки. Как я могу решить это, и в чем проблема?

Ответы [ 3 ]

5 голосов
/ 01 февраля 2012

Проблема в том, что ваши String переменные a и b неправильно отформатированы - "N / A" не является правильным double.

Пожалуйста, напишите, как вы их получаете.

0 голосов
/ 01 февраля 2012

В вашем коде нет b.Если вы пытаетесь сделать что-то вроде этого:


String[] a = {"123","23"} ;
double p = (Math.round((Double.parseDouble(a[0]) - Double.parseDouble(a[1]))*100))/100;
System.out.println(p);

, возможно, вы допустили опечатку.Потому что это хорошо для меня.

0 голосов
/ 01 февраля 2012

Корень вашей ошибки java.lang.NumberFormatException: For input string: "N/A"

Это означает, что a или b имеет значение N / A .

...