pub fn future_value_schedule<T>(rates: &[f64], present_value: T) -> f64Expand description
Calculates a future value based on rates that change for each period.
Related functions:
- To calculate the future value with varying rates and return a struct that can produce the
period-by-period values use
future_value_schedule_solution. - If there is a single fixed rate use [
future_value] orfuture_value_solution.
§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: 4% followed by -3.9%, 10.6%, and -5.7%.
let rates = [0.04, -0.039, 0.106, -0.057];
// The initial investment is $75,000.
let present_value = -75_000.00;
let future_value = future_value_schedule(&rates, present_value);
dbg!(&future_value);
assert_rounded_4(78_178.0458, future_value);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);