%macro LoanInt(_p, _r, _y, _n, _i); /**************************************************************************************/ /* Name: LoanInt.sas Auth: Phil Rack */ /* Date: 5/16/2007 Revd: */ /* */ /* Desc: Calculates the Interest on a loan */ /* */ /* Where: _p = The loan principal. */ /* _i = The loan interest rate. (The Returned Value) */ /* _y = The loan term in years. */ /* _n = The loan term in months. */ /* _r = The calculated loan payment. */ /* */ /* Copyright (C) 2007 by MineQuest, LLC. All Rights Reserved. www.minequest.com */ /**************************************************************************************/ _r1 = 0; _ig = 10; _ig2 = 0; _mqncnt_ = 0; do until(( Round(_r1,.01) = &_r) or (_mqncnt_ = 80 ) ); _mqncnt_ + 1; _r1 = Round((_ig * &_p / &_n) / (1 -1 /((_ig / &_n + 1) ** ( &_n * &_y))),.01); _ig3 = abs( _ig - _ig2) / 2; _ig2 = _ig; if _r1 = &_r then do; _i = ((int(( _ig * 1000) * 100 + .5)) / 100) / 1000; &_I = _i * 100; end; if _r1 < &_r then _ig= _ig + _ig3; if _r1 > &_r then _ig = _ig - _ig3; put _r1 _ig; End; if _mqncnt_ = 80 then &_i = 0; drop _r1 _ig _ig2 _ig3 _i _mqncnt_; /******************************************************************************************/ /* LoanInt is copyright (c) 2007 by MineQuest, LLC. All Rights Reserved. */ /* MineQuest, LLC, 1939 Queensbridge Dr., Columbus, OH USA. */ /* This Macro Program is proprietary software and is licensed property of MineQuest, LLC. */ /******************************************************************************************/ %mend LoanInt;