#java #math
#java #математика
Вопрос:
Привет, ребята, у меня есть следующий код, и я перенастраиваю исключение, в котором говорится: «double не может быть преобразован в строку»; для меня все выглядит нормально, но не знаю, не пропустил ли я что-то. Спасибо;
double operadorD=this.nAleatoreo.nextInt(9);
double operandoD=this.nAleatoreo.nextInt(3);
double potencia =Math.pow(operadorD, operandoD);
generaRespuestas(Integer.parseInt(potencia));
break;
* generaRespuesta получает значение int, поэтому я конвертирую его в int.
Комментарии:
1. Какой тип аргументации
Integer.parseInt()
требуется?2. Код не «возвращает исключение» — у вас ошибка во время компиляции. Важно понимать разницу между ошибками во время компиляции и исключениями (которые генерируются во время выполнения кодом, который скомпилирован …)
Ответ №1:
parseInt принимает строку. Если вы хотите преобразовать из double в int, parseInt — это не тот способ. Один из способов (если не считать потери точности) — просто разыграть его.
generaRespuestas((int)potencia);
Ответ №2:
ДА. Это потому Integer#parseInt(String)
, что принимает a java.lang.String
, которое не является an int
. Тем не менее, вы, безусловно, можете преобразовать результат Math.pow
в an int
(с соответствующей потерей точности).
int potencia = (int) Math.pow(operadorD, operandoD);
generaRespuestas(potencia);
Комментарии:
1. Большое спасибо, теперь я понял разницу.
Ответ №3:
Integer.parseInt()
: ожидает строковый аргумент. Но Math.pow()
возвращает вас double
изменить
double potencia =Math.pow(operadorD, operandoD);
Для
int potencia =(int)Math.pow(operadorD, operandoD);