#money #irr #npv

financial

一组模仿部分Excel财务函数界面的财务计算

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财务 类别中

Download history 95/week @ 2024-03-14 139/week @ 2024-03-21 56/week @ 2024-03-28 109/week @ 2024-04-04 143/week @ 2024-04-11 94/week @ 2024-04-18 153/week @ 2024-04-25 118/week @ 2024-05-02 138/week @ 2024-05-09 70/week @ 2024-05-16 75/week @ 2024-05-23 143/week @ 2024-05-30 201/week @ 2024-06-06 160/week @ 2024-06-13 136/week @ 2024-06-20 151/week @ 2024-06-27

677 每月下载次数

MIT/Apache

83KB
665

财务

GitHub CircleCI crates.io docs.rs

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的贡献都受欢迎。

Buy Me A Coffee

依赖关系

约1MB
约18K SLoC