| commit | 54028dc503fc08eb12e287919d5e2850cff05b73 | [log] |
|---|---|---|
| author | Xisco Fauli <xiscofauli@libreoffice.org> | Tue Jul 16 15:34:53 2019 +0200 |
| committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | Wed Jul 31 03:46:51 2019 +0200 |
| tree | 5cf3bc569e76d0d0a311b4b2f8b5813233f0faec | |
| parent | ca6df519a78e5bfc96030c916f242b86306194e5 [diff] |
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@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx index 69ce91f..71a4345 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 {