<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Invalid argument to function FINANCE 'pv' with 0 interest rate in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Invalid-argument-to-function-FINANCE-pv-with-0-interest-rate/m-p/809405#M319192</link>
    <description>&lt;P&gt;This is interesting, since logically speaking, there should be no problem with rate=0.&amp;nbsp; &amp;nbsp;The&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://pv = finance('pv', int_rate, 24, - annual_payment / 12);" target="_self"&gt;FINANCE PV function documentation&lt;/A&gt;&amp;nbsp;has no restrictions on the interest rate.&amp;nbsp; If there is documentation somewhere else about the finance function not tolerating int_rate=0, I haven't seen it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;Editted note&amp;gt;:&lt;/P&gt;
&lt;P&gt;The most that I have seen about interest rate is in the&amp;nbsp;&lt;A href="https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.2/lefunctionsref/p1cnn1jwdmhce0n1obxmu4iq26ge.htm" target="_self"&gt;FINANCE Function Documentation&lt;/A&gt;&amp;nbsp;which only says&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;H4 class="xisDoc-argument"&gt;&lt;EM class="xisDoc-userSuppliedValue"&gt;interest-rates&lt;/EM&gt;&lt;/H4&gt;
&lt;DIV class="xisDoc-argumentDescription"&gt;
&lt;P class="xisDoc-paraSimpleFirst"&gt;specifies rates that are provided as numeric values and not as percentages.&lt;/P&gt;
&lt;/DIV&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This might be worth presenting to SAS as a possibly bug, or at least a need for improved documentation.&lt;/P&gt;
&lt;P&gt;&amp;lt;/end of editted note&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And interest rate=0 is really a simple calculation for PV - just a simple sum of payments.&amp;nbsp; There must be something about the underlying algorithm not being robust against int_rate=0, since using values that are almost zero, both positive and negative (0.000000000000001 and -0.000000000000001) produce values very close to PV=2400.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But you could protect yourself against this by changing&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;pv = finance('pv', int_rate, 24, - annual_payment / 12);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if int_rate=0 then pv=24*annual_payment/12; else
pv = finance('pv', int_rate, 24, - annual_payment / 12);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 23 Apr 2022 01:29:09 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2022-04-23T01:29:09Z</dc:date>
    <item>
      <title>Invalid argument to function FINANCE 'pv' with 0 interest rate</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Invalid-argument-to-function-FINANCE-pv-with-0-interest-rate/m-p/809393#M319186</link>
      <description>&lt;P&gt;Hi, I am trying to calculate the present value by using the FINANCE function in SAS. However, I found that when my rows having interest as 0%, the log threw me error for example saying:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NOTE: Invalid argument to function FINANCE('pv',0,24,-100) at line 28 column 7.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What should I do to solve it? Here is the code I used:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data aa;&lt;BR /&gt;input int_rate annual_payment;&lt;BR /&gt;datalines;&lt;BR /&gt;0 1200&lt;BR /&gt;0 4000&lt;BR /&gt;0.008325 1000&lt;BR /&gt;0.008325 500&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data bb;&lt;BR /&gt;set aa;&lt;BR /&gt;pv = finance('pv', int_rate, 24, - annual_payment / 12);&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sample data - HAVE:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;#&lt;/TD&gt;&lt;TD&gt;int_rate&lt;/TD&gt;&lt;TD&gt;annual_payment&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0.008325&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;0.008325&lt;/TD&gt;&lt;TD&gt;500&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WANT:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;#&lt;/TD&gt;&lt;TD&gt;int_rate&lt;/TD&gt;&lt;TD&gt;annual_payment&lt;/TD&gt;&lt;TD&gt;pv&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1200&lt;/TD&gt;&lt;TD&gt;2400&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;4000&lt;/TD&gt;&lt;TD&gt;8000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0.008325&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;1806.0852117&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;0.008325&lt;/TD&gt;&lt;TD&gt;500&lt;/TD&gt;&lt;TD&gt;903.04260585&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Apr 2022 22:57:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Invalid-argument-to-function-FINANCE-pv-with-0-interest-rate/m-p/809393#M319186</guid>
      <dc:creator>newboy1218</dc:creator>
      <dc:date>2022-04-22T22:57:55Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid argument to function FINANCE 'pv' with 0 interest rate</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Invalid-argument-to-function-FINANCE-pv-with-0-interest-rate/m-p/809396#M319188</link>
      <description>&lt;P&gt;Don't call the function with an invalid parameter. That is accomplished with a simple If.&lt;/P&gt;
&lt;P&gt;What&amp;nbsp;&lt;STRONG&gt;rule&lt;/STRONG&gt; do want when to have as a result when the rate is 0? I might &lt;STRONG&gt;guess&lt;/STRONG&gt; that you want 2 time the annual payment but I have no idea if that is actually the rule you want to program.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data bb;
   set aa;
   if rate &amp;gt; 0 then pv = finance('pv', int_rate, 24, - annual_payment / 12);
   else &amp;lt;do what you want when the rate is 0&amp;gt;;
run;

 &lt;/PRE&gt;
&lt;P&gt;NOT a finance person so don't expect a recommendation on an actual value to provide when there the rate is 0.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/211631"&gt;@newboy1218&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi, I am trying to calculate the present value by using the FINANCE function in SAS. However, I found that when my rows having interest as 0%, the log threw me error for example saying:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NOTE: Invalid argument to function FINANCE('pv',0,24,-100) at line 28 column 7.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What should I do to solve it? Here is the code I used:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data aa;&lt;BR /&gt;input int_rate annual_payment;&lt;BR /&gt;datalines;&lt;BR /&gt;0 1200&lt;BR /&gt;0 4000&lt;BR /&gt;0.008325 1000&lt;BR /&gt;0.008325 500&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;data bb;&lt;BR /&gt;set aa;&lt;BR /&gt;pv = finance('pv', int_rate, 24, - annual_payment / 12);&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sample data - HAVE:&lt;/P&gt;
&lt;TABLE border="1"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;#&lt;/TD&gt;
&lt;TD&gt;int_rate&lt;/TD&gt;
&lt;TD&gt;annual_payment&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1200&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;4000&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0.008325&lt;/TD&gt;
&lt;TD&gt;1000&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0.008325&lt;/TD&gt;
&lt;TD&gt;500&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;WANT:&lt;/P&gt;
&lt;TABLE border="1"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;#&lt;/TD&gt;
&lt;TD&gt;int_rate&lt;/TD&gt;
&lt;TD&gt;annual_payment&lt;/TD&gt;
&lt;TD&gt;pv&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1200&lt;/TD&gt;
&lt;TD&gt;2400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;4000&lt;/TD&gt;
&lt;TD&gt;8000&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;0.008325&lt;/TD&gt;
&lt;TD&gt;1000&lt;/TD&gt;
&lt;TD&gt;1806.0852117&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0.008325&lt;/TD&gt;
&lt;TD&gt;500&lt;/TD&gt;
&lt;TD&gt;903.04260585&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Apr 2022 23:20:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Invalid-argument-to-function-FINANCE-pv-with-0-interest-rate/m-p/809396#M319188</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2022-04-22T23:20:51Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid argument to function FINANCE 'pv' with 0 interest rate</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Invalid-argument-to-function-FINANCE-pv-with-0-interest-rate/m-p/809405#M319192</link>
      <description>&lt;P&gt;This is interesting, since logically speaking, there should be no problem with rate=0.&amp;nbsp; &amp;nbsp;The&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://pv = finance('pv', int_rate, 24, - annual_payment / 12);" target="_self"&gt;FINANCE PV function documentation&lt;/A&gt;&amp;nbsp;has no restrictions on the interest rate.&amp;nbsp; If there is documentation somewhere else about the finance function not tolerating int_rate=0, I haven't seen it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;Editted note&amp;gt;:&lt;/P&gt;
&lt;P&gt;The most that I have seen about interest rate is in the&amp;nbsp;&lt;A href="https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.2/lefunctionsref/p1cnn1jwdmhce0n1obxmu4iq26ge.htm" target="_self"&gt;FINANCE Function Documentation&lt;/A&gt;&amp;nbsp;which only says&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;H4 class="xisDoc-argument"&gt;&lt;EM class="xisDoc-userSuppliedValue"&gt;interest-rates&lt;/EM&gt;&lt;/H4&gt;
&lt;DIV class="xisDoc-argumentDescription"&gt;
&lt;P class="xisDoc-paraSimpleFirst"&gt;specifies rates that are provided as numeric values and not as percentages.&lt;/P&gt;
&lt;/DIV&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This might be worth presenting to SAS as a possibly bug, or at least a need for improved documentation.&lt;/P&gt;
&lt;P&gt;&amp;lt;/end of editted note&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And interest rate=0 is really a simple calculation for PV - just a simple sum of payments.&amp;nbsp; There must be something about the underlying algorithm not being robust against int_rate=0, since using values that are almost zero, both positive and negative (0.000000000000001 and -0.000000000000001) produce values very close to PV=2400.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But you could protect yourself against this by changing&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;pv = finance('pv', int_rate, 24, - annual_payment / 12);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if int_rate=0 then pv=24*annual_payment/12; else
pv = finance('pv', int_rate, 24, - annual_payment / 12);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 23 Apr 2022 01:29:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Invalid-argument-to-function-FINANCE-pv-with-0-interest-rate/m-p/809405#M319192</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2022-04-23T01:29:09Z</dc:date>
    </item>
  </channel>
</rss>

