Подскажите пожалуйста, в чем разница между этими значениями и почему программа при подстановке в формулу выдает разные значения при double a=9/5*b+32 и double a=9/5.0*b+32.
Волков Сергей
10 уровень
В чем разница между 5 и 5.0?
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Max
11 апреля 2020, 15:12
Не судите строго.
Тоже поломал голову над задачей, но всегда на выходе получался 0.0!!!
А все почему? Правильно, нужно внимательно читать задание! Не обратил внимание на условие "Метод convertCelsiusToFahrenheit должен ВОЗВРАЩАТЬ", равно, как и не обратил внимание на return 0 - потерял время и нервы))
Собственно, ларчик очень просто открывался:
- объявляется переменная типа double, которой присваивается значение "формула конвертирования из TF в ТС;
- возвращаем значение переменной double
ВСЕ!
p.s. - пока пыхтел над задачей, дети из-под носа утащили последние пряники))
0
Кирилл Java Developer
7 апреля 2020, 23:24
5 отличается от 5.0 типом. По умолчанию, при вычислении все числа имеют тип int, но если добавить число с точкой, то выражение будет вычисляться уже по типу вещественных чисел, то есть остаток от деления уже не будет отбрасываться.
Вот достаточно подробная статься на эту тему: http://pr0java.blogspot.com/2015/12/java.html
+1
Волков Сергей
8 апреля 2020, 11:33
Спасибо. Если я правильно понял, то если я задам дробное значение любому другому числу в выражении, то все числа в этом выражении будут приняты типом double? Например написать выражение как (double a=9/5*b+32.0;) то же будет верно?
0
Кирилл Java Developer
8 апреля 2020, 11:50
Они будут вычисляться по типу double, а после вычисления результат будет присвоен переменной, которую ты указал.
Ещё надо учитывать последовательность выполнения операций вычисления, то есть если первая в очереди на вычисление пара чисел не содержит вещественного числа, а вторая пара содержит, то вычисление первой пройдёт по типу int, то есть остаток от деления будет отброшен, а второй по типу double.
Вот пример для разбора:
1. double v = 5/2/2.0; Покажет результат 1.00
2. double v = 5/2.0/2; Покажет результат 1.25
0
Волков Сергей
8 апреля 2020, 12:56
Не видел этой информации в статье, спасибо огромное за разъяснения.
0
Vasili
7 апреля 2020, 23:13
В чем разница между 5 и 5.0?>
В том, что типы этих чисел разные: int 5 и double 5.0. деление целых чисел и дробных (с плавающей точкой, double и float) осуществляется с нюансами.
Про деления целых чисел https://javarush.com/quests/lectures/questsyntaxpro.level02.lecture01
0
Волков Сергей
8 апреля 2020, 11:33
Спасибо за ссылку.
0