Я хочу рассчитать процент минут в java. Например: 10% от 3 минут за 30 секунд.
Ниже мой код. У меня есть переменная t
, у которой время в минутах. Я хочу вычислить 10% времени t
и преобразовать это в миллисекунды. Как я могу это сделать? assmt_time10per
ошибочно установлен на 0
int t = 3; // TIME IN MINUTES
long assmt_time = TimeUnit.MINUTES.toMillis(t);
long assmt_time10per = (t * 10) / 100;
2 ответа
Для 10%
преобразуйте время в миллисекунды и разделите на 10.
Ваша ошибка здесь (вы делите время на минуты)
assmt_time10per = (t * 10) / 100;
Должно быть (вы делите время на только что рассчитанные миллисекунды)
assmt_time10per = (assmt_time * 10) / 100;
Кроме того, когда вы делите 2 целых числа, в результате вы получаете целое число, здесь 3 на 10 равно 0,3, оно возвращает 0. Если вы хотите 0,3, вам нужно использовать числа типа double и установить значение double, то есть double d = (double)t / 10d;
, это установит d
на 0.3
Вот рабочий код для x процентов
int x = 10; // desired percentage
int t = 3; // time in minutes
long assmt_time = TimeUnit.MINUTES.toMillis(t);
long assmt_time10per = (assmt_time * x) / 100;
System.out.println(assmt_time10per);
Выходы 18000
Я думаю, может быть, вы усложняете это необходимым.
double percent=10;
int tm = 3;
double seconds = (tm * 60) / percent;
Это даст вам процент в секундах.
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].