[−][src]Function finance_solution::future_value_schedule_solution
pub fn future_value_schedule_solution<T>(
rates: &[f64],
present_value: T
) -> TvmScheduleSolution where
T: Into<f64> + Copy,
Calculates a future value based on rates that change for each period, returning a struct with all of the inputs and results.
Related functions:
- For simply calculating a single future value using a fixed rate use [
future_value
]. - To calculate a future value with a fixed rate and return a struct that shows the formula and
optionally produces the the period-by-period values use
future_value_solution
. - To calculate the future value if the rates vary by period use
future_value_schedule
.
Arguments
rates
- A collection of rates, one for each period.present_value
- The starting value of the investment.
Panics
The call will fail if any of the rates is less than -1.0 as this would mean the investment is losing more than its full value.
Examples
Calculate the value of an investment whose rates vary by year.
use finance_solution::*; // The rates vary by year: 8.1% followed by 11%, 4%, and -2.3%. let rates = [0.081, 0.11, 0.04, -0.023]; // The initial investment is $10,000. let present_value = -10_000.00; let solution = future_value_schedule_solution(&rates, present_value); dbg!(&solution); let future_value = solution.future_value(); dbg!(&future_value); assert_rounded_4(future_value, 12_192.0455); // Calculate the value for each period. let series = solution.series(); dbg!(&series);
Error case: One of the rates shows a drop of over 100%. There's no way to work out what this means so the call will panic.
let rates = [0.116, -100.134, -0.09, 0.086]; let present_value = -4_000.00; let schedule = future_value_schedule(&rates, present_value);