Flutter金融功能插件finance的使用
Flutter金融功能插件finance的使用
finance
是一个用于金融计算的Dart基础包。它提供了一组高级函数和类,使金融比率的计算变得简单,并且模仿了电子表格中的计算方式。该库独立于平台,支持iOS和Android。
安装
在 pubspec.yaml
文件中添加以下依赖项:
dependencies:
finance: ^x.x.x
然后运行 flutter pub get
来安装依赖。
使用说明
Future Value 计算
未来价值计算是指在一定时间内投资的最终金额。例如,现在存入1000美元,每月再存入100美元,年利率为7%,按月复利,30年后会有多少钱?
print(Finance.fv(rate: 0.07 / 12, nper: 30 * 12, pmt: -100, pv: -1000));
输出结果约为:130113.59
Payments 计算
支付计算是指为了偿还贷款所需的每月支付金额。例如,一笔100,000美元的贷款,年利率为2.5%,10年内还清,每月需要支付多少?
print(Finance.pmt(rate: 0.025 / 12, nper: 10 * 12, pv: 100000));
输出结果约为:942.69
Number of Period 计算
周期数计算是指以固定月供偿还贷款所需的月份数。例如,每月支付500美元,贷款金额为10,000美元,年利率为3%,需要多久才能还清?
print(Finance.nper(rate: 0.03 / 12, pmt: -500, pv: 10000));
输出结果约为:20.00
Principal and Interest Payment 计算
本金和利息支付计算是指贷款的分期还款表及其总利息。例如,一笔为期一年、金额为5000美元、年利率为10%的贷款,按月复利,其分期还款表及总利息是多少?
final Iterable<Map<String, num>> payments =
List<int>.generate(12, (int index) => index + 1).map((int per) =>
<String, num>{
'per': per,
'pmt': Finance.pmt(rate: 0.1 / 12, nper: 1 * 12, pv: 5000),
'ppmt': Finance.ppmt(rate: 0.1 / 12, per: per, nper: 1 * 12, pv: 5000),
'ipmt': Finance.ipmt(rate: 0.1 / 12, per: per, nper: 1 * 12, pv: 5000),
});
payments.forEach(print);
final num interestPaid =
payments.fold(0, (num p, Map<String, num> c) => p + c['ipmt']);
print(interestPaid);
输出结果为:
- 分期还款表
- 总利息约为:
275.00
Present Value 计算
现值计算是指为了达到未来的某个目标金额,现在需要投入的初始资金。例如,为了在10年后每月存入100美元,累计总额达到20,000美元,年利率为7%,按月复利,现在的初始投资应该是多少?
print(Finance.pv(rate: 0.07 / 12, nper: 10 * 12, pmt: -100, fv: 20000));
输出结果约为:1339.28
Interest Rate 计算
利率计算是指贷款的月利率或年利率。例如,一笔8000美元的贷款,期限为5年,每月支付152.5美元,其月利率和年利率是多少?
print(Finance.rate(nper: 60, pmt: -152.5, pv: 8000, fv: 0));
输出结果为:月利率:0.45%
或 年利率:5.42%
Net Present Value 计算
净现值计算是指投资的当前价值。例如,一笔投资需要先投入15,000美元,然后在固定间隔内依次提取1500、2500、3500、4500、6000美元,假设期末价值为0,折现率为5%,其净现值是多少?
print(Finance.npv(rate: 0.05, values: <num>[-15000, 1500, 2500, 3500, 4500, 6000]));
输出结果约为:122.89
Internal Rate of Return 计算
内部收益率计算是指投资的内部收益率。例如,一笔投资需要先投入15,000美元,然后在固定间隔内依次提取1500、2500、3500、4500、6000美元,假设期末价值为0,其内部收益率是多少?
print(Finance.irr(values: <num>[-15000, 1500, 2500, 3500, 4500, 6000]));
输出结果约为:5.24%
完整示例代码
以下是一个完整的示例代码,展示了如何使用 finance
插件进行各种金融计算:
import 'package:finance/finance.dart';
void main(List<String> arguments) {
// Future Value 计算
print(Finance.fv(rate: 0.07 / 12, nper: 30 * 12, pmt: -100, pv: -1000));
// Payments 计算
print(Finance.pmt(rate: 0.025 / 12, nper: 10 * 12, pv: 100000));
// Number of Period 计算
print(Finance.nper(rate: 0.03 / 12, pmt: -500, pv: 10000));
// Principal and Interest Payment 计算
final Iterable<Map<String, num>> payments =
List<int>.generate(12, (int index) => index + 1).map((int per) =>
<String, num>{
'per': per,
'pmt': Finance.pmt(rate: 0.1 / 12, nper: 1 * 12, pv: 5000),
'ppmt': Finance.ppmt(rate: 0.1 / 12, per: per, nper: 1 * 12, pv: 5000),
'ipmt': Finance.ipmt(rate: 0.1 / 12, per: per, nper: 1 * 12, pv: 5000),
});
payments.forEach(print);
final num interestPaid =
payments.fold(0, (num p, Map<String, num> c) => p + c['ipmt']);
print(interestPaid);
// Present Value 计算
print(Finance.pv(rate: 0.07 / 12, nper: 10 * 12, pmt: -100, fv: 20000));
// Interest Rate 计算
print(Finance.rate(nper: 60, pmt: -152.5, pv: 8000, fv: 0));
// Internal Rate of Return 计算
print(Finance.irr(values: <num>[-15000, 1500, 2500, 3500, 4500, 6000]));
// Net Present Value 计算
print(Finance.npv(rate: 0.05, values: <num>[-15000, 1500, 2500, 3500, 4500, 6000]));
}
更多关于Flutter金融功能插件finance的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter金融功能插件finance的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
finance
是一个用于金融计算的 Flutter 插件,主要用于执行常见的金融计算,如贷款支付、未来值、现值等。它可以帮助开发者在应用中轻松集成金融计算功能。
安装
首先,你需要在 pubspec.yaml
文件中添加 finance
插件的依赖:
dependencies:
flutter:
sdk: flutter
finance: ^2.0.0
然后运行 flutter pub get
来安装插件。
使用示例
以下是一些常见的使用示例:
1. 计算贷款支付 (PMT)
import 'package:finance/finance.dart';
void main() {
double rate = 0.05 / 12; // 月利率
int nper = 30 * 12; // 贷款期限(月)
double pv = 200000; // 贷款金额
double pmt = Finance.pmt(rate, nper, pv);
print('每月还款金额: \$${pmt.toStringAsFixed(2)}');
}
2. 计算未来值 (FV)
import 'package:finance/finance.dart';
void main() {
double rate = 0.05 / 12; // 月利率
int nper = 30 * 12; // 投资期限(月)
double pmt = -500; // 每月投资金额(负数表示支出)
double fv = Finance.fv(rate, nper, pmt);
print('未来值: \$${fv.toStringAsFixed(2)}');
}
3. 计算现值 (PV)
import 'package:finance/finance.dart';
void main() {
double rate = 0.05 / 12; // 月利率
int nper = 30 * 12; // 投资期限(月)
double pmt = -500; // 每月投资金额(负数表示支出)
double pv = Finance.pv(rate, nper, pmt);
print('现值: \$${pv.toStringAsFixed(2)}');
}
4. 计算利率 (RATE)
import 'package:finance/finance.dart';
void main() {
int nper = 30 * 12; // 贷款期限(月)
double pmt = -1073.64; // 每月还款金额(负数表示支出)
double pv = 200000; // 贷款金额
double rate = Finance.rate(nper, pmt, pv);
print('月利率: ${(rate * 100).toStringAsFixed(2)}%');
}
5. 计算贷款期限 (NPER)
import 'package:finance/finance.dart';
void main() {
double rate = 0.05 / 12; // 月利率
double pmt = -1073.64; // 每月还款金额(负数表示支出)
double pv = 200000; // 贷款金额
double nper = Finance.nper(rate, pmt, pv);
print('贷款期限: ${(nper / 12).toStringAsFixed(2)} 年');
}