]> source.dussan.org Git - poi.git/commitdiff
apply change that stackoverflow (but that does not fix the broken case)
authorPJ Fanning <fanningpj@apache.org>
Thu, 31 Mar 2022 20:27:22 +0000 (20:27 +0000)
committerPJ Fanning <fanningpj@apache.org>
Thu, 31 Mar 2022 20:27:22 +0000 (20:27 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1899456 13f79535-47bb-0310-9956-ffa450edef68

poi/src/main/java/org/apache/poi/ss/formula/functions/Rate.java

index 4ecd4c794e64d240411a4cdbdce8dc7d52e6a576..90c3684cdefed475d28c3ce30509428b08076545 100644 (file)
@@ -66,7 +66,7 @@ public class Rate implements Function {
 
             checkValue(rate);
         } catch (EvaluationException e) {
-            LOG.atError().withThrowable(e).log("Can't evaluate rate function")
+            LOG.atError().withThrowable(e).log("Can't evaluate rate function");
             return e.getErrorEval();
         }
 
@@ -83,7 +83,7 @@ public class Rate implements Function {
         if (Math.abs(rate) < FINANCIAL_PRECISION) {
             y = pv * (1 + nper * rate) + pmt * (1 + rate * type) * nper + fv;
         } else {
-            f = Math.exp(nper * Math.log(1 + rate));
+            f = Math.pow(1 + rate, nper);
             y = pv * f + pmt * (1 / rate + type) * (f - 1) + fv;
         }
         y0 = pv + pmt * nper + fv;