2016-02-10 4 views
0

У меня все работает правильно, эта программа должна читать в файле, затем распечатывать и вычислять ИМТ, расходы и отображать ее. У меня только проблемы с попыткой показать общую цену всех премов.Невозможно вернуть правильное значение, NumberFormatException

+0

какой линии это 'на Project.premPrice (Project .java: 48) '?? – nullpointer

+0

totalPrem + = premPrice (customerDetails); Это может быть мой метод попыток вычислить то, что не так – Nick

ответ

-2

У вас есть проблема с этими 3 строками в коде.

Integer.parseInt(customerDetails[4]); 
int height = Integer.parseInt(customerDetails[6]); 
int weight = Integer.parseInt(customerDetails[7]); 

Проблема может быть связана с содержимым файла. Лучший способ выяснить - распечатать customerDetails[4],customerDetails[6] и customerDetails[7]. Значение должно содержать только числа. Если у вас есть другие символы, вы получите указанную ошибку в вопросе.

+0

Проблема не в содержании файла, посмотрите результат, а ошибка в displayMessage2, no в displayMessage –

+0

Да premPrice вызывается в displayMessage2, который делает Integer. ParseInt. –

+0

Кто редактирует мои ответы и превращается в кусок мусора, и кто бы ни голосовал, помогите объяснить, чтобы мы могли его исправить. –

1

Видя вывод, я знаю, что проблема заключается не в содержании файла.

Я думаю, ваша проблема здесь:

// Read information from file and store in array  
    String[] customerDetails = new String[9]; 
    Scanner inputFile = new Scanner(file); 
    for (int i = 0; i < TOTAL_ACC; i++){ 
     for(int j = 0 ; inputFile.hasNext() && j < 9 ; j++){ 
      customerDetails[j] = inputFile.nextLine(); 
     } 
     displayMessage(customerDetails); 
     customerDetails = new String[9]; //Look this line 
    } 
     displayMessage2(customerDetails); //Look this line 
     inputFile.close(); 
    } 

Вы называете displayMessage2(customerDetails); после выполнения customerDetails = new String[9];

И displayMessage2 звонков premPrice(customerDetails) и premPrice сделать int age = Integer.parseInt(customerDetails[4]);

+0

Я думаю, что это правильно, я просто попробовал переместить displayMessage2 (customerDetails); before customerDetails = new String [9]; и он работал, но он печатает displayMessage2 все 6 раз, мне просто нужно, чтобы он печатался один раз в конце файла, а сумма была неправильной. – Nick

+0

@Nick Что вы пытаетесь сделать? Какова ваша логика для расчета «Общая стоимость всех премий: $»? –

+0

Я пытаюсь взять премиальные расходы от всех клиентов, которые были рассчитаны, и объединить их в одну общую сумму. https://gyazo.com/f99b2a2cb48d8e0b378dc2e54293adfc – Nick

Смежные вопросы