Java - параметры «не могут быть преобразованы в переменную» error [closed]

Как сказал @KyssTao, help(dates.num2date) говорит, что x должен быть float, дающим число дней с 0001-01-01 плюс один. Следовательно, 19910102 не 2 / янв / 1991, потому что, если вы посчитали 19910101 дней с 0001-01-01, вы получите что-то в год 54513 или подобное (разделите на 365,25, количество дней в году).

Вместо этого используйте datestr2num (см. help(dates.datestr2num)):

new_x = dates.datestr2num(date) # where date is '01/02/1991'
-4
задан clanktree 18 March 2019 в 00:39
поделиться

2 ответа

Рассмотрим эти две строки из main, например:

  System.out.println("    Closing price: " + s2.setClosingPrice(close));
  System.out.println("    Current price: " + s2.setCurrentPrice(price));

Вы имеете в виду две переменные, close и price.

Ни один из них не объявлен в main.

Ни одна из них не объявлена ​​как переменная-член класса Stock.

Короче говоря, они не существуют ни в одном применимом объеме. Возможно, вы использовали похожие имена для нескольких методов, но они не являются именами, доступными там, где вы их сейчас используете.


Я думаю, вы не понимаете, как работает передача параметров. Например, если я объявляю метод:

void myMethod(int fubar) { ... }

, а затем вызываю его так:

myMethod(42);

, то в этом конкретном вызове myMethod переменная fubar будет иметь значение 42. Точно так же, если я назову это так:

int xyz = 1 + 2 + 3;
myMethod(xyz);

в этом вызове myMethod, fubar равно 6. Все, что я пытаюсь здесь сказать, это то, что fubar - это переменная, которая получит значение от звонка; имя не доступно автоматически нигде вне метода, который его определяет, и вы также не обязаны использовать это имя.

0
ответ дан another-dave 18 March 2019 в 00:39
поделиться

Ваш объект Stock принимает String в качестве первого и второго входных данных:

Stock(String s, String n, double previousClosingPrice, double currentPrice)

В текущем состоянии вы не предоставляете ему String (я полагаю, опечатка, вы забыли двойные кавычки), поэтому измените ваши строки на:

  Stock s1 = new Stock("GOG", "Google", 134.67, 131.98);
  Stock s2 = new Stock("MSF", "Microsoft", 156.52, 161.22);

То для первой части сообщения об ошибке.

Следующая проблема, с которой вы столкнулись, заключается в том, что в вашем методе currentPrice () есть опечатка - я предполагаю, что она должна быть setCurrentPrice.

Далее: в вашем toString () отсутствует оператор возврата.

Далее: ваши переменные, которые вы используете, такие как close, price, change, нигде не установлены. Вам нужно установить их где-нибудь, прежде чем использовать их в качестве ввода параметров.

0
ответ дан vs97 18 March 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: