Я думаю, это довольно понятно из кода. Очевидно, я не оцениваю одно и то же снова и снова, это просто примеры, чтобы объяснить мою проблему. Я предполагаю, что это переполнение / недостаточность, но я не знаю, как с этим справиться.
double d = (1 / (684985+157781));
System.out.println(d); // returns 0.0
System.out.println(Math.log(d)); // returns -Infinity.