Я думаю, это то, что вы ищете:
monthsNeeded = (Math.log(myMonthlyPayment) - Math.log(myMonthlyPayment - myAnnualInterestRate / 1200d * myPrincipal)) / Math.log(myAnnualInterestRate / 1200d + 1);
Похоже, что в вашем решении вы не рассчитывали свой myAnnualInterestRate/1200*myPrincipal
внутри второго Math.log(...)
. Вы также оставили некоторые вычисления за пределами Math.log(...)
в нижней половине вашего уравнения.
Если у вас есть уравнение, которое выполняет операцию внутри натурального журнала, когда вы конвертируете это уравнение в код Java, эту операцию еще нужно выполнить, внутри натурального журнала :
ln(someNumber + 10)
будет преобразовано в:
Math.log(someNumber + 10)
НЕ
Math.log(someNumber) + 10
Надеюсь, это поможет и удачи. :)