diff options
author | Wang Lei <leiw@apache.org> | 2012-06-21 06:27:18 +0000 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2013-03-15 19:34:04 +0100 |
commit | 5c6dd7a8438f17f768c069f0bcc52d6420aa3e3e (patch) | |
tree | 49fa2b9ee16822004f44ae704a67aed9a0d0399a /svl | |
parent | 80fd82a6fbd2561d12a8f7d1aa82c435bf1e6aa4 (diff) |
i#119964 - Number displays different from MS with the same format code
Patch by: Zhang Lu
Review by: Wang Lei
Conflicts:
svl/source/numbers/zformat.cxx
Change-Id: Id1ce742dc829a7aa8056e3be50e315ea4499ecc6
Diffstat (limited to 'svl')
-rw-r--r-- | svl/inc/svl/zformat.hxx | 12 | ||||
-rw-r--r-- | svl/source/numbers/zformat.cxx | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/svl/inc/svl/zformat.hxx b/svl/inc/svl/zformat.hxx index ddb1535b7357..d4bbef714e9b 100644 --- a/svl/inc/svl/zformat.hxx +++ b/svl/inc/svl/zformat.hxx @@ -322,6 +322,18 @@ public: (eOp1 == NUMBERFORMAT_OP_GT && eOp2 == NUMBERFORMAT_OP_LT) || (eOp1 == NUMBERFORMAT_OP_NO && eOp2 == NUMBERFORMAT_OP_NO) ); } + // Whether the first subformat code is really for negative numbers + // or another limit set. + sal_Bool IsNegativeRealNegative2() const + { + return fLimit1 == 0.0 && fLimit2 == 0.0 && + ( (eOp2 == NUMBERFORMAT_OP_GT && eOp1 == NUMBERFORMAT_OP_LT) || + (eOp2 == NUMBERFORMAT_OP_EQ && eOp1 == NUMBERFORMAT_OP_LT) || + (eOp2 == NUMBERFORMAT_OP_GE && eOp1 == NUMBERFORMAT_OP_LT) || + (eOp2 == NUMBERFORMAT_OP_NO && eOp1 == NUMBERFORMAT_OP_LT) || + (eOp2 == NUMBERFORMAT_OP_NO && eOp1 == NUMBERFORMAT_OP_LE) || + (eOp2 == NUMBERFORMAT_OP_GT && eOp1 == NUMBERFORMAT_OP_LE)); + } // Whether the negative format is without a sign or not bool IsNegativeWithoutSign() const; diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index 45c1f29ae3e3..eca7005e2663 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -2526,6 +2526,9 @@ bool SvNumberformat::GetOutputString(double fNumber, { fNumber = -fNumber; // Vorzeichen eliminieren } + if(nIx == 0 && + IsNegativeRealNegative2() && fNumber < 0.0) + fNumber = -fNumber; *ppColor = NumFor[nIx].GetColor(); const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info(); const sal_uInt16 nAnz = NumFor[nIx].GetCount(); |