我一直在网上搜索两天的大部分时间,寻找一个功能类似于Excel的JAVA财务库,尤其是NPER。我最接近的是这里的NPER formula,除非我在此处输入解算器:math calculator使用以下内容:
((√((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库来执行这样的计算?
感谢。
答案 0 :(得分:1)
算术错误可能是因为Java使用的是Integer数学。通过在每次操作后向下舍入值,整数数学完全忽略小数点。请考虑以下代码:
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