[Libreoffice-commits] core.git: connectivity/source

Xisco Fauli (via logerrit) logerrit at kemper.freedesktop.org
Wed Jul 31 01:47:31 UTC 2019


 connectivity/source/drivers/firebird/PreparedStatement.cxx |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 54028dc503fc08eb12e287919d5e2850cff05b73
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Tue Jul 16 15:34:53 2019 +0200
Commit:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Wed Jul 31 03:46:51 2019 +0200

    tdf#123591: truncate and round to 'scale' number of decimal places
    
    otherwise the number will be incorrectly converted to OUString
    if scale < number of decimals
    
    See https://bugs.documentfoundation.org/show_bug.cgi?id=123591#c25
    
    Change-Id: Ie32c9c6ab339d6907e9a4e2645d6f19bad9e67c8
    Reviewed-on: https://gerrit.libreoffice.org/75727
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx
index 69ce91f42da1..71a43454f315 100644
--- a/connectivity/source/drivers/firebird/PreparedStatement.cxx
+++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx
@@ -18,6 +18,7 @@
  */
 
 #include <sal/config.h>
+#include <cmath>
 
 #include <string_view>
 
@@ -729,7 +730,8 @@ void SAL_CALL OPreparedStatement::setObjectWithInfo( sal_Int32 parameterIndex, c
         OUString sValue;
         if( x >>= dbValue )
         {
-            sValue = OUString::number( dbValue );
+            // truncate and round to 'scale' number of decimal places
+            sValue = OUString::number( std::floor((dbValue * pow10Integer(scale)) + .5) / pow10Integer(scale) );
         }
         else
         {


More information about the Libreoffice-commits mailing list