Здравствуйте, я что-то упускаю. Вот метод для вычисления b процентов от a. (например, percent(4, 50) должен вернуть 50% от 4).Он работает верно
public static double percent(int a, int b) {
double persent = a*b/100;
return persent;
}
Однако я вначале написал double persent = a*(b/100) имея ввиду сначала 50/100=0.5, а затем 4*0.5=2. Но компилятор возвращает 0.0! Почему?
Александр Романов
8 уровень
В чем разница?
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Gorynich Java Developer
11 мая 2020, 17:06
Потому что ты делишь int. Результатом является int, т.е. отброшена дробная часть.
Например a = 10, b = 4. Твой код выведет 2.
Если написать (double)a/b, то результат будет 2.5
0
Александр Романов
11 мая 2020, 18:34
Спасибо!!!
a*(double)b/100 так правильнее будет.
0