Да хоть на Луну!

  • 1
  • Недоступна
Программисты часто переезжают с места на место, но только если сами того хотят. Вот почему в их среде конвертеры так популярны. Хотя, может, и не поэтому. Тем не менее, тренируемся их писать. Представьте, что теперь вам придется работать не где-нибудь, а на Луне. Давайте реализуем метод, который переводит ваш земной вес в лунный.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (81)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Алексей3 уровень, Киев
12 августа, 16:38
Да, все целые числа нужно принимать как double!!!
sigismondo2 уровень, Комо
9 августа, 02:21
сразу после 100 и 17 ставьте d, дабы подчеркнуть что это значение double 100d 17d
Михаил3 уровень, Москва
31 мая, 11:42
Вроде запоминаешь, а потом похожее задание попадается и всё)) Ступор). Написал правильно, но зачем то на возврате поставил = . ))) Благо получилось.
Eremenko Hennadii3 уровень, Днепр
29 мая, 20:00
Задача на пройденный материал. "Наш первый конвертер"
tatiana8 уровень, Москва
23 мая, 14:22
почему у меня ответ сходится 150.96, но при этом не выполнено последнее условие: Метод getWeight должен правильно переводить вес тела в Ньютонах на Земле в вес этого же тела на Луне, и возвращать это значение? Что надо сделать-то?
Igor3 уровень, Киев
14 мая, 11:07
Интересно, что double с = earthWeight * 0.17; - дает результат 150,96, а double с = earthWeight * 17/100; ----- 150,0. Почему? Кто объяснит?
Эндже Салахова5 уровень, Санкт-Петербург
23 мая, 17:50
Вроде как из-за того что в типе double должна быть плавающая точка(?) То есть если было бы c = earthWeight * 17/100.0 , то получилось бы, насколько я поняла...
Dmitriy8 уровень, Санкт-Петербург
14 июня, 21:06
Изи жи. Потому что округляется значение до целого числа. Когда программа поделила 17 на 100 она округлила полученный результат до целого числа т.е. переменную типа int, а нам нужна переменная типа double. Для компилятора 17 и 17.00 разные типы данных. Изначально нужно написать числа так: double s = earthWeight * 17.00 / 100.00; return s; Либо извращнуться: double name = 17.00d/100.00d; double s = earthWeight * name; return s; Но проще всего сразу 0.17 писать в формуле, тогда компилятор сразу вкурит что это переменная типа double)
rus_aim@mail.ru17 уровень
2 июля, 03:57
Спасибо. Действительно изи. Нужно было просто подумать. )))
Oleg653 уровень, Москва
5 апреля, 10:20
смотрим задание Мой первый конвектор)
Marta Tsytovich3 уровень, Киев
18 апреля, 10:37
и не забываем что 17% = 0,17
Евгений4 уровень
24 апреля, 19:54
я бы даже сказал 0.17 ))
Dmitry Vasenkov5 уровень
28 февраля, 21:12
double m = earthWeight * 0.17; return m;
Денис4 уровень
20 марта, 09:42
нельзя по правилам, давать готовые ответы. так вы не помогаете а усугубляете обучение
GigaMax12 уровень
16 апреля, 07:41
точно)
АртемGeek25 уровень, Москва
21 февраля, 17:37
Если кому то поможет то вот формула перевода: x = 888 ⋅ 17: 100 где, x = значение вес тела на луне 888 = вводимый параметр (вес) 17 = наш процент который известен 100 - это проценты, мы находим числа по проценту (неизменно) Не забудьте приправить это все double, чтобы программа заработала
Женик Петров14 уровень, Гомель
11 февраля, 03:29
Или я плохо соображаю в 5 утра или хз. Почему x/100*17 не то же самое что x*0.17. Правда задачу уже закрыл и не могу показать пример кода. Но я изначальное ввел именно такую формулу (x/100)*17 и получал другой ответ. Может проблема в компиляторе? кто-нибудь столкнулся с такой ерундой? или так и надо(тогда не могу понять почему)))
Dmitriy Komar14 уровень, Минск
11 февраля, 14:47
такой же вопрос
Hexronimo23 уровень
13 февраля, 14:19
С компилятором всё в порядке. Когда вы делите int на int'овое число вы получаете на выходе тоже int, остаток от деления отбрасывается, то есть вы делите 888/100 и получаете 8, а не 8.88 как ожидаете. Чтобы этого не происходило можно явно указать до названия переменной, что вы согласны на дробный результат, например так: y = (double) x / 5; Когда же вы умножаете на 0.17 компилятору и так понятно что вы ожидаете увидеть дробь на выходе, иначе бы не использовали дробное число в формуле.
GigaMax12 уровень
16 апреля, 07:44
делить надо не на 100, а на 100.0 , т.е. если делить на число целое (int) то ответ будет целое число, поэтому делить надо на 100.0 (double)
Ринат4 уровень
13 мая, 16:46
так же умножил на 17 и разделил на 100, возвращает целое число 150, сделал только когда зашел сюда.