Мой код дает мне 44400.0%
. Я испортил ему кучу, но это самое близкое, что я получил к правильному ответу. Мне разрешено изменять только те строки, на которых я определил временный массив и ниже. Когда я пытаюсь разделить больше, я теряю значительные цифры, так как мне нужно три четверти как часть процента.Неверный процент от целых чисел
import java.text.DecimalFormat;
public class ArrayElements90OrMore
{
public static void main(String [] args)
{
int [] array = { 91, 82, 73, 94, 35, 96, 90, 89, 65 };
DecimalFormat percent = new DecimalFormat("#0.0%");
System.out.print("The elements are ");
for (int i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
System.out.println();
System.out.println("The percentage of elements 90 or greater is "
+ percent.format(percent90OrMore(array)));
}
public static int percent90OrMore(int [] temp)
{
int count = 0;
for (int i = 0; i < temp.length; i++) {
if (temp[i] >= 90) {
count++;
}
}
return (count * 1000)/(temp.length);
}
}
Это то, что меня действительно беспокоит. Я не должен менять первую часть, и она не примет двойной. Было бы легко, если бы он принял двойной. – dsorenson
@dsorenson 'percent.format()' принимает двойной. Какую часть вы не можете изменить? Вам просто нужно изменить 'percent90OrMore' – Eran
Я ничего не могу изменить в последнем заявлении печати. Когда я использую эту строку кода: return ((double) count * 100)/temp.length; Я получаю эту ошибку: ArrayElements90OrMore.java:35: ошибка: возможная потеря точности return ((double) count * 100)/temp.length; ^ required: int найдено: double 1 ошибка – dsorenson