pub struct PresentValueCashFlows<'a> {
pub cash_flows: &'a [f64],
pub discount_rate: f64,
}
Expand description
The discounted value of varying periodic cash flows
§Example
use com_croftsoft_core::math::finance_lib::PresentValueCashFlows;
assert_eq!(
PresentValueCashFlows {
cash_flows: &[1.0], // A dollar received one year in the future
discount_rate: 0.10, // With inflation at 10% per year
}.calculate(),
0.9090909090909091); // Will have the spending power of ~$0.91 today
assert_eq!(
PresentValueCashFlows {
cash_flows: &[0.0, 1.0], // A dollar received in two years
discount_rate: 0.10, // With interest at 10% per year
}.calculate(),
0.8264462809917354); // Would be worth the same as ~$0.83 invested today
assert_eq!(
PresentValueCashFlows {
cash_flows: &[1.0, 2.0, 3.0], // $1, $2, and $3 over 3 years
discount_rate: 0.0, // With no inflation
}.calculate(),
6.0); // Would be worth $6 today
assert_eq!(
PresentValueCashFlows {
cash_flows: &[1.0, 2.0, 3.0], // $1, $2, and $3 over 3 years
discount_rate: 0.10, // With inflation at 10% per year
}.calculate(),
4.8159278737791125); // Would be worth ~$4.82 today
Fields§
§cash_flows: &'a [f64]
§discount_rate: f64
The discount rate or inflation rate per time period (use 0.01 for 1%)
Implementations§
Trait Implementations§
Source§impl<'a> Clone for PresentValueCashFlows<'a>
impl<'a> Clone for PresentValueCashFlows<'a>
Source§fn clone(&self) -> PresentValueCashFlows<'a>
fn clone(&self) -> PresentValueCashFlows<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl<'a> Freeze for PresentValueCashFlows<'a>
impl<'a> RefUnwindSafe for PresentValueCashFlows<'a>
impl<'a> Send for PresentValueCashFlows<'a>
impl<'a> Sync for PresentValueCashFlows<'a>
impl<'a> Unpin for PresentValueCashFlows<'a>
impl<'a> UnwindSafe for PresentValueCashFlows<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more