Правильный ответ: d = 5.5

  • 6
  • Недоступна
Будьте осторожны с сужающим приведеним типов! Применение этой техники приводит к неожиданным результатам. Запомните это на всю жизнь, а пока — решите задачку на преобразование типов. Код уже весь написан, но чего-то не хватает, а именно — одной операции по приведению типов. Найдите, куда её нужно поместить, чтобы получить правильный ответ.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (22)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Wladyslaw12 уровень
позавчера, 15:34
Если привести к double b - то в результате b/c/e получим 0,6***. Вроде как в условии указано что операцию тоже можно добавить - добавил Math.round. 0.6 * 2 - получаем 1,3333 - его округляем Math.round - получаем 1. Округленный результат делим на 2 - выходит 0,5. Таким образом можно округлить к ближайшему полуцелому. Потом спокойно плюсуешь 5 и 0,5 - и есть результат. Но валидатору не понравилось Потому пришлось одну из переменных, которые в делении участвуют привести в double чтобы получить в результате деление те же 0,5.
ilgar10 уровень, Secaucus
14 июня, 01:27
nujen tolko odin (double) dobavit . ne kakix skobok . vse proxodit i otvet 5.5
Михаил Гуржий15 уровень, Москва
27 апреля, 21:55
double d = a + (b / c /  e);
после добавления скобок (для наглядности) валидатор уже не принимал решение
Дмитрий Метельский22 уровень, Минск
11 апреля, 15:21
Хитро!!!=)
Danny F23 уровень, Москва
6 марта, 18:17
у вас там будет 2 операции преобразования типов -Первое - с int -Второе с double или float Мне понадобилось много скобок)))
Владимир Павленко22 уровень, Москва
17 февраля, 04:03
эта е там не спроста...
Andrey Tyurin20 уровень, Казань
7 января, 12:21
почему float не канает, а нужен double?
Александр Ковалев14 уровень, Москва
31 января, 17:35
очень даже "канает"! только в нужном месте
DinosauR15 уровень, Киев
3 января, 23:40
Первым выполняется деление b/c = 1,333333333333333, но это же int, по этому не 1,333333333333333 а 1. дальше 1/e = 0.5 теперь можно складывать с a. говорила тебе мама: Учись сынок!
DancingShaman23 уровень
24 сентября 2018, 21:15
Чуваки, чтобы нормас понять решение этой задачи, нужно загуглить про promotion rules в java и знать, что оператор приведения типов действует только на литерал/переменную/значение выражения, которое находится справа от него, то есть, за ним.
10 сентября 2018, 05:10
Решил перебором вариантов. Эту тему вообще не понимаю.