2013-03-17 2 views
2
monPay = (amtFin * amtI)/((1-(1+amtI)*Math.pow(-n,-n))); 

Я использую этот код, но он не вычисляет Math.pow (-n, -n) правильно. Кажется, что Math.pow (-n, -n) вычисляет 0.0. Все переменные имеют тип double.Метод Java Math.Pow

+4

Каковы типы и значения ввода здесь? – Reimeus

+0

Значение 'n' определенно поможет. –

+0

Какой тип n? –

ответ

2

Похоже, вы пытаетесь вычислить ежемесячные выплаты по кредиту на основе основной суммы и т. Д. Однако ваша формула неверна: (1+amtI)*Math.pow(-n,-n) должен быть Math.pow(1+amtI,-n).

+0

Большое спасибо за помощь. Новое в java и делало себя калькулятором заклада от пользователя, вводящего значения. Но теперь он работает =) – Brandon

1

Что происходит, так это то, что значение pow(-n,-n) слишком низкое, чтобы его можно было представить как double (минимальное значение, равное нулю, равное нулю, равное 10E-323).

Вместо этого вы можете работать с BigDecimal, но обратите внимание, что вычисления с BigDecimal медленнее.

Смежные вопросы