Неверные типы операндов

 public double getRandKg(double[] value)
{
    double min = 0.0;
    double max = 0.0;

    value * 0.90 = min;          <------ this is where it says bad operand
    value * 1.10 = max;                   types for binary operator '*'
    Random r = new Random();              first type double[] second type double

    double randomValue = min + (((max-min)+1) * r.nextDouble());
    return randomValue;                                                                         //

}

Уже поздно, и, возможно, я просто не могу ясно мыслить. Это просто говорит о том, что я не могу умножить double[] на double?


person user3414479    schedule 17.03.2014    source источник
comment
Какой язык вы используете?   -  person devnull    schedule 17.03.2014
comment
Ага. Кроме того, у вас не может быть выражения в левой части присваивания.   -  person Karura91    schedule 17.03.2014
comment
Этот вопрос кажется не по теме, потому что слишком много проблем, чтобы разобраться. ОП должен обратиться к учебнику для начинающих, прежде чем приступить к написанию кода.   -  person devnull    schedule 17.03.2014
comment
Я думаю, вам нужно получить вводную книгу по Java, потому что этот код представляет собой все виды what?. Не могли бы вы объяснить, что ваша программа должна делать? РЕДАКТИРОВАТЬ: Ну, теперь я в замешательстве, потому что из этого сообщения: stackoverflow.com/questions/22433375/ кажется, что OP компетентен с Явой. Должно быть, это была сумасшедшая ночь или что-то в этом роде...   -  person Chris Middleton    schedule 17.03.2014
comment
Это просто метод возврата случайного двойного числа в диапазоне 10% от переданного.   -  person user3414479    schedule 17.03.2014
comment
В этом случае вы хотите сначала найти минимальное/максимальное значение массива, а затем, используя эти результаты, умножить на 0,9 и 1,1, чтобы получить минимальное/максимальное значение с поправкой на 10%. Мне интересно, какое у этого применение.   -  person Chris Middleton    schedule 17.03.2014
comment
слишком много проблем, чтобы разобраться в 7 строчках кода... вряд ли... либо помогите, либо не комментируйте.... вас никто не заставлял печатать на клавиатуре.   -  person user3414479    schedule 17.03.2014
comment
это индексированное значение передаваемого массива   -  person user3414479    schedule 17.03.2014
comment
Простите всех... сейчас 5 утра, где я живу... слишком долго не спал.   -  person user3414479    schedule 17.03.2014
comment
Вау... тупоголовый пост...теперь я все вижу...извините за потраченное время. спасибо всем за помощь   -  person user3414479    schedule 17.03.2014


Ответы (2)


double[] - это массив. Как вы можете умножить массив значений double на одно двойное значение?

используйте double[someIndex] * doubleVar для умножения на одно значение и поместите выражение справа, а не слева.

person anirudh    schedule 17.03.2014
comment
Да.. Я думал, что это сработает, поскольку в методе в качестве значения передается массив с индексом. то есть avgKgNitrogen[z] передается в цикле, когда z=0 - person user3414479; 17.03.2014
comment
В этом случае измените определение метода на public double getRandKg(double value) - person anirudh; 17.03.2014
comment
BONEHEAD QUESTION....я понял.... Спасибо за вашу конструктивную помощь. Я чувствую себя полным болваном сейчас. - person user3414479; 17.03.2014

Я считаю, что вы пытаетесь установить значения для минимума и максимума. В этом случае вы делаете неправильный путь.

Так должно быть:

min = value * 0.90;          
max = value * 1.10;

http://docs.oracle.com/javase/tutorial/reflect/member/fieldValues.html

--

Также вы не можете умножить массив на двойное число. Вы должны указать, какой ключ => значение в массиве, который вы хотите использовать.

Например

min = value[0] * 0.90;
min = value[0] * 0.90;

Где значение [0] относится к первому индексу массива (поскольку массивы начинаются с 0)

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

person H H    schedule 17.03.2014
comment
@H H Все равно не будет работать, поскольку значение представляет собой массив. - person anirudh; 17.03.2014
comment
Цените помощь. Я нуб. Должен был провести больше исследований, но было поздно, и я был ленив. Мне жаль всех. Спасибо за вашу помощь. - person user3414479; 17.03.2014