Я пишу эту программу как задание для школы. Программа принимает от пользователя данные в форме «пол» и «возраст» и возвращает средний возраст всех мужчин и / или женщин.
Программа работала до тех пор, пока моя мама не провела ее бета-тестирование, и мы случайно обнаружили проблему. Если по какой-либо случайности пользователь введет число людей, для которых сумма их возрастов не делится на количество введенных людей, в результате будет получен ответ с 15 десятичными знаками. Например, если я введу 3 мужчин в возрасте 98, 1 и 1, программа делит 100 на 3, и я получаю вывод:
33.333333333333336.
Итак, я взял SO, чтобы найти решение этой проблемы, и нашел this , который я реализовал в своей программе, как показано ниже, чтобы он урезал ответ максимум до 3 десятичных знаков:
/*
This method takes two values. The first value is divided by the second value to get the average. Then it trims the
answer to output a maximum of 3 decimal places in cases where decimals run amok.
*/
public static double average (double a, double b){
double d = a/b;
DecimalFormat df = new DecimalFormat("#.###");
return Double.parseDouble(df.format(d));
Я написал код внизу моей программы в своем собственном методе, который я вызываю в методе main в строках 76 и 77:
// Here we calculate the average age of all the people and put them into their respective variable.
double yAverage = average(yAge, men);
double xAverage = average(xAge, women);
Однако. Я получаю это сообщение об ошибке , когда я пытаюсь запустить программу, и я не понимаю сообщение об ошибке. Я попытался погуглить ошибку, но ничего не нашел. Пожалуйста, имейте в виду, что я новичок, и мне нужен настолько простой ответ, насколько кто-либо может дать мне. Заранее спасибо!