Kaydet (Commit) 6ffd516e authored tarafından Wang Lei's avatar Wang Lei

#i119964 - Number displays different from MS with the same format code

Patch by: Zhang Lu
Review by: Wang Lei
üst 4a89fce4
...@@ -313,6 +313,18 @@ public: ...@@ -313,6 +313,18 @@ public:
(eOp1 == NUMBERFORMAT_OP_GT && eOp2 == NUMBERFORMAT_OP_LT) || (eOp1 == NUMBERFORMAT_OP_GT && eOp2 == NUMBERFORMAT_OP_LT) ||
(eOp1 == NUMBERFORMAT_OP_NO && eOp2 == NUMBERFORMAT_OP_NO) ); (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 // Whether the negative format is without a sign or not
sal_Bool IsNegativeWithoutSign() const; sal_Bool IsNegativeWithoutSign() const;
......
...@@ -2129,9 +2129,12 @@ sal_Bool SvNumberformat::GetOutputString(double fNumber, ...@@ -2129,9 +2129,12 @@ sal_Bool SvNumberformat::GetOutputString(double fNumber,
else else
nIx = 2; nIx = 2;
} }
if (nIx == 1 && fNumber < 0.0 && // negatives Format if (nIx == 1 && // negatives Format
IsNegativeRealNegative() ) // ohne Vorzeichen IsNegativeRealNegative() && fNumber < 0.0) // ohne Vorzeichen
fNumber = -fNumber; // Vorzeichen eliminieren fNumber = -fNumber; // Vorzeichen eliminieren
if(nIx == 0 &&
IsNegativeRealNegative2() && fNumber < 0.0)
fNumber = -fNumber;
*ppColor = NumFor[nIx].GetColor(); *ppColor = NumFor[nIx].GetColor();
const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info(); const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
const sal_uInt16 nAnz = NumFor[nIx].GetnAnz(); const sal_uInt16 nAnz = NumFor[nIx].GetnAnz();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment