8个稳定版本
1.1.5 | 2023年2月17日 |
---|---|
1.1.3 | 2021年10月13日 |
1.1.2 | 2020年8月5日 |
1.1.1 | 2020年7月23日 |
#23 在 财务 类别中
677 每月下载次数
83KB
665 行
财务
Financial
是一个 Rust crate,其中包含一组模仿部分 Excel财务函数 界面的财务计算。您可以在这里找到此crate。
用法
use financial;
let npv = financial::npv(0.1, &[-1000., 500., 500., 500.]);
assert_eq!(npv, 221.29635953828267);
此crate的独特之处
它支持IRR和NPV的周期性和计划性计算。
IRR和NPV函数速度更快,因为它们通过迭代预计算幂次而不是多次使用幂函数。但请注意,目前没有提供基准测试。
支持的功能
- FV(Rate, Nper, Pmt, Pv, Pmt_is_due)
- PV(Rate, Nper, Pmt, Fv, Pmt_is_due)
- NPV(Rate, values)
- XNPV(Rate, values, dates)
- IRR(values)
- XIRR(values, dates)
- MIRR(values, finance_rate, reinvest_rate)
NaiveDate接口
financial::naive_date::xirr()
和financial::naive_date::xnpv()
提供与financial::xirr()
和financial::xnpv()
相同的功能,除了前者支持将NaiveDate
作为输入日期类型,而后者使用DateTime<T>
。
未来工作
添加基准测试- 添加更多功能(NPER, PMT, Rate, effect)
测试
- 此crate有超过180个测试用例,其中大多数与Excel输出进行了比较。
- 由于Excel中的XIRR并不总是收敛到正确答案,而且经常产生错误答案0.000000002980,因此XIRR并未与Excel进行比较。相反,通过使用XIRR产生零XNPV值来测试XIRR。
- 注意,用于浮点数相等的精度为1e-7。
贡献
- 使用crate并提供反馈或指出任何问题。
- 鼓励添加更多测试用例。
- 任何服务于crate的贡献都受欢迎。
依赖关系
约1MB
约18K SLoC