Понимаю что должно быть все просто но не получается. Дано условие
You need to double the integer and return it.
class Java {
public static int doubleInteger(int i) {
// Double the integer and return it!
return i;
}
}
Делаю так
class Java {
public static int doubleInteger(int i) {
int k = (int) 1.0;
double g = i * k;
return (int) g;
}
}
К задаче идет тест
mport org.junit.*;
import org.junit.rules.*;
import org.junit.runner.Description;
public class JavaTest{
@Test
public final void test_all() {
Assert.assertEquals( "Nope!" , 4, Java.doubleInteger(2)); // Test cases here!
}
}
при проверке выдает
Test Results:
JavaTest
test_all
Nope! expected:<4> but was:<2>
Stack Trace
Completed in 4ms
Completed in 19ms
при замене в методе типа возвращаемого значения на double
class Java {
public static double doubleInteger(int i) {
int k = (int) 1.0;
double g = i * k;
return g;
}
}
тест выдает
Test Results:
JavaTest
test_all
Use assertEquals(expected, actual, delta) to compare floating-point numbers
Stack Trace
Completed in 3ms
Completed in 16ms
STDERR
Note: ./src/test/java/JavaTest.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Анатолий Анатольевич Мишенин
9 уровень
Помогите решить задачу
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sergey
25 января 2020, 16:13
судя по условию вы должны принимать int и возвращать double, у вас же метож принимает int и возвращает int. решение return Double.valueOf(i)
0
VladimirMaster
25 января 2020, 16:49
Сергей, вот это выражение (You need to double the integer and return it.), как бы перевели жители Mt Prospect?
0
Wladyslaw Java Developer Master
26 января 2020, 00:02
да тут просто нужно умножить значение на 2 и вернуть, ничего более.
Как подтверждение моих слов - тесткейс
При вводе 2 - должно вернутся 4
+1
Sergey
26 января 2020, 18:25
если чесно даже не знаю, что ответить.... банальность задачи убила, это же надо было целую ветку создать:)) и да в Mount Prospect говорят - you have to...
0
Анатолий Анатольевич Мишенин
23 января 2020, 21:22
Магия какая-то я решил сразу после написания поста здесь, но почему это работает я не понимаю, объясните кто может.
class Java {
public static int doubleInteger(int i) {
int k = (int) 1.0;
double g = (i * k) * 2;
return (int) g;
}
} я вообще запутался, если входящее допустим 4, умножаем 4* 1,0 = 4,0, почему тест писал что получаем 2, почему я добавил умножение на 2 (4*1,0*2 = 8) тест прошел по всем параметрам ??? WHAT ??? 😒
0
Сергеев ВикторMaster
23 января 2020, 21:24
double в названии метода похоже означает "удвоение".
Т.е. метод называется удвоитьИнт
0
Анатолий Анатольевич Мишенин
23 января 2020, 21:26
Господи я уже понял что я безобразно затупил :( это полный фейл два дня лопатить инфу как преобразовать int в double насиловать тест и мозг и в итоге это умножение OMG! Один плюс я очень хорошо усвоил материал по преобразованию типов и попутно написанию исключений :)
0
VladimirMaster
24 января 2020, 00:28
Толя, задача простейшая. Ты конечно же, усложнил решение. 🤗
Дословно переводится: Вам нужно удвоить целое число и вернуть его.
Не имеется ввиду double такой: Имеется ввиду удвоение:
В нашем деле, одно другому не мешает. Затупил в одном, прокачался в другом. 😊😉 0