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

Eike Rathke erack at redhat.com
Thu Jan 14 09:14:57 PST 2016


 svl/source/numbers/zformat.cxx |   29 ++++++++++-------------------
 1 file changed, 10 insertions(+), 19 deletions(-)

New commits:
commit c5c47412d16b5bbdc79886ae9bf93d0158405d14
Author: Eike Rathke <erack at redhat.com>
Date:   Thu Jan 14 18:11:39 2016 +0100

    it's unnecessary to buffer the string to create a string from it again
    
    ... just in case there was a negative number and a minus to be inserted.
    doubleToUString() does it already.
    
    Change-Id: I0052d7bc91b48efb5f14f2f6f5a7c672a1e50ea9

diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index 4daf67b..6d80c53 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -2120,41 +2120,32 @@ bool SvNumberformat::GetOutputString(double fNumber,
         case css::util::NumberFormat::NUMBER: // Standard number format
             if (rScan.GetStandardPrec() == SvNumberFormatter::UNLIMITED_PRECISION)
             {
-                bool bSign = ::rtl::math::isSignBitSet(fNumber);
-                if (bSign)
+                if (::rtl::math::isSignBitSet(fNumber))
                 {
                     if (!(fNumber < 0.0))
-                    {
-                        bSign = false;
-                    }
-                    fNumber = -fNumber;
+                        fNumber = -fNumber;     // do not display -0.0
                 }
-                if (fNumber < EXP_LOWER_BOUND)
+                if (fNumber < EXP_LOWER_BOUND && fNumber > -EXP_LOWER_BOUND)
                 {
-                    sBuff.append( ::rtl::math::doubleToUString( fNumber,
+                    OutString = ::rtl::math::doubleToUString( fNumber,
                                 rtl_math_StringFormat_E2,
                                 15,
-                                GetFormatter().GetNumDecimalSep()[0], true));
+                                GetFormatter().GetNumDecimalSep()[0], true);
                 }
-                else if (fNumber < 1.0)
+                else if (fNumber < 1.0 && fNumber > -1.0)
                 {
-                    sBuff.append( ::rtl::math::doubleToUString( fNumber,
+                    OutString = ::rtl::math::doubleToUString( fNumber,
                                 rtl_math_StringFormat_Automatic,
                                 15,
-                                GetFormatter().GetNumDecimalSep()[0], true));
+                                GetFormatter().GetNumDecimalSep()[0], true);
                 }
                 else
                 {
-                    sBuff.append( ::rtl::math::doubleToUString( fNumber,
+                    OutString = ::rtl::math::doubleToUString( fNumber,
                                 rtl_math_StringFormat_Automatic,
                                 rtl_math_DecimalPlaces_Max,
-                                GetFormatter().GetNumDecimalSep()[0], true));
-                }
-                if (bSign)
-                {
-                    sBuff.insert(0, '-');
+                                GetFormatter().GetNumDecimalSep()[0], true);
                 }
-                OutString = sBuff.makeStringAndClear();
                 return false;
             }
             ImpGetOutputStandard(fNumber, sBuff);


More information about the Libreoffice-commits mailing list