2011-10-03 94 views
-1

我一直在尋找具有類似於Excel的功能的JAVA金融函數庫,特別是NPER,在兩天的好時間裏搜尋互聯網。我來最接近的是這裏的一個:NPER formula,除了當我鍵入到這裏求解:math calculator使用下列內容:是否有支持NPER功能的NPER或財務功能庫?

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

我得到比擅長給了我一個不同的數字。我使用的價值是3000美元,13%的利息,80美元的每月付款。在線Excel和計算器顯示49個月(48.3取整),但該公式給我39.4個月。有誰知道我可以在我的代碼中執行這樣的計算的java庫嗎?

謝謝。

回答

1

算術錯誤可能是因爲Java正在使用整數數學。整數數學運算完成後,將小數點四捨五入後完全忽略小數點。考慮下面的代碼:

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

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

的的yIntyDouble產生的值是不同的。 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 
+0

我還沒有在java中做過任何事情,我在網上使用了一個求解器,並在公式中輸入以匹配另一個鏈接中提供的公式。我可能會嘗試以編程方式執行該等式,但我想確保我擁有與在線金融計算器顯示的匹配的正確公式。擁有一個具有NPER功能的Java庫將爲我節省大量的工作。 –

+0

看起來像這樣的作品:http://www.ehow.com/how_2154015_calculate-term-investment-using-microsoft.html我只是比較結果與2個在線計算器,他們匹配 –