У меня есть два неотрицательных длин. Они могут быть большими, рядом с Long.MAX_VALUE. Я хочу рассчитать процент от двух чисел.
Обычно я бы это сделал:
long numerator = Long.MAX_VALUE / 3 * 2;
long denominator = Long.MAX_VALUE;
int percentage = (int) (numerator * 100 / denominator);
System.out.println("percentage = " + percentage);
Это неверно, если числитель находится в двух порядках от Long.MAX_VALUE.
Какой правильный, простой и быстрый способ сделать это?