sc/source/core/tool/interpr2.cxx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-)
New commits: commit ccd030e61fa43c472b85b184882e87f4fab2faf2 Author: Winfried Donkers <winfrieddonk...@libreoffice.org> Date: Thu Mar 2 15:16:57 2017 +0100 tdf#106236 Check for all constraints with Calc function PDURATION. Plus use of correct prefixes for variable names. Change-Id: I430039fa23fc73e13bf1992f4188a67ae47b52ab Reviewed-on: https://gerrit.libreoffice.org/34819 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Eike Rathke <er...@redhat.com> diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx index b9dd738..a33aa33 100644 --- a/sc/source/core/tool/interpr2.cxx +++ b/sc/source/core/tool/interpr2.cxx @@ -1880,10 +1880,13 @@ void ScInterpreter::ScPDuration() { if ( MustHaveParamCount( GetByte(), 3 ) ) { - double nFuture = GetDouble(); - double nPresent = GetDouble(); - double nInterest = GetDouble(); - PushDouble(log(nFuture / nPresent) / rtl::math::log1p(nInterest)); + double fFuture = GetDouble(); + double fPresent = GetDouble(); + double fInterest = GetDouble(); + if ( fFuture <= 0.0 || fPresent <= 0.0 || fInterest <= 0.0 ) + PushIllegalArgument(); + else + PushDouble( ( log( fFuture / fPresent ) / rtl::math::log1p( fInterest ) ) ); } } commit 9a7b5d86aceb97fc9f3d36bee817d3d0fc976254 Author: Winfried Donkers <winfrieddonk...@libreoffice.org> Date: Mon Feb 27 15:05:32 2017 +0100 tdf#106210 Apply correct constraint for calc function EFFECTIVE. (= ODFF formula EFFECT) Change-Id: Ib9adeece3d2f1331b80ce8eae74831420e6c2e6b Reviewed-on: https://gerrit.libreoffice.org/34682 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Eike Rathke <er...@redhat.com> diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx index 55cc788..b9dd738 100644 --- a/sc/source/core/tool/interpr2.cxx +++ b/sc/source/core/tool/interpr2.cxx @@ -2331,8 +2331,10 @@ void ScInterpreter::ScEffect() { double fPeriods = GetDouble(); double fNominal = GetDouble(); - if (fPeriods < 1.0 || fNominal <= 0.0) + if (fPeriods < 1.0 || fNominal < 0.0) PushIllegalArgument(); + else if ( fNominal == 0.0 ) + PushDouble( 0.0 ); else { fPeriods = ::rtl::math::approxFloor(fPeriods); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits