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

  • 6
  • Недоступна
Будьте осторожны с сужающим приведеним типов! Применение этой техники приводит к неожиданным результатам. Запомните это на всю жизнь, а пока — решите задачку на преобразование типов. Код уже весь написан, но чего-то не хватает, а именно — одной операции по приведению типов. Найдите, куда её нужно поместить, чтобы получить правильный ответ.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (18)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Danny F15 уровень, Москва
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
Решил перебором вариантов. Эту тему вообще не понимаю.
Рустам17 уровень, Минск
29 июля 2018, 17:08
Решил методом проб и ошибок...в нужном месте необходимо поставить (float)
Nazhmiddin Bakhriddinov20 уровень
8 июня 2018, 23:05
не понимаю как же так -> double d = a + b / c / (double) e; это же 5+4/3/2.0 = даёт 5.5? Если считать по человечейский то поличиться 5,66666666666......?
Владислав18 уровень
1 августа 2018, 18:12
b/c = 1 delenie deloitza deren integer! patom (double)e delenie deloitza deren double i 1/2 = 0,5 patom +a = 5+0.5 =5.5! :)
Gennadiy16 уровень, Одесса
12 января, 19:27
int b / int c (4 / 3) = 1 (дробная часть отбрасывается). double e = 2.0; 1 / 2.0 = 0.5;
YarDK20 уровень, Москва
18 мая 2018, 09:39
int 4/3 = 1; int 1/2 = 0; При добавлении операции преобразование типов к одной из переменных в уравнение, мы меняем тип обеих этих переменных (грубо и не факт, что правильно, но это помогло осмыслить решение).
Слава Тарасов15 уровень, Москва
29 сентября 2017, 10:15
double d = (a + b / c / (double)e); Не принимает. Пишет - Начальное значение переменных при инициализации менять нельзя. Можно добавлять только операторы приведения типа. РЕКОМЕНДАЦИЯ ОТ МЕНТОРА Инициализацию переменной 'd' менять нельзя, но можно добавлять оператор приведения типа.
15 декабря 2017, 15:37
все верно, вы внешними скобками изменяете условие