Существует ли библиотека функций NPER или финансовых функций, которая поддерживает функции NPER? - PullRequest
0 голосов
/ 03 октября 2011

Большую часть двух дней я искал в интернете в поисках финансовой библиотеки JAVA, которая имеет функции, аналогичные функциям Excel, особенно NPER.самая близкая вещь, к которой я пришел, это одна здесь: формула NPER , за исключением случаев, когда я набираю это в решателе здесь: математический калькулятор , используя следующее:

((√((80*(1+.13*1)+(-1/.13)*0)/((3000*.13+80)*(1+.13*1)))/√(1+.13)))*100

Я получаю номер, отличный от того, что дает мне excel.Значения, которые я использую, составляют 3000 $, 13%, 80 $ ежемесячно.Excel и калькуляторы онлайн показывают 49 месяцев (48,3 с округлением), но эта формула дает мне 39,4 месяца.Кто-нибудь знает библиотеку Java, которую я могу реализовать в своем коде для выполнения таких вычислений?

Спасибо.

1 Ответ

1 голос
/ 03 октября 2011

Арифметические ошибки, вероятно, связаны с тем, что Java использует целочисленную математику.Целочисленная математика полностью игнорирует десятичную точку, округляя значение после каждой операции.Рассмотрим следующий код:

int xInt = 5;
int yInt = (xInt/2) * 3;

double xDouble = 5;
double yDouble = (xDouble/2) * 3;

Результирующие значения yInt и yDouble различны.yInt - 6, а yDouble - 7,5.

В вашем коде вы должны преобразовать целочисленные значения в двойные или с плавающей точкой, добавляя десятичные знаки.как это:

double val1 = (5/2)*3; // this equals 6, Don't do this
double val2 = (5.0/2.0)*3.0 // this equals 7.5, instead do this
...