summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Balland-Poirier <laurent.balland-poirier@laposte.net>2017-03-12 14:11:36 +0100
committerEike Rathke <erack@redhat.com>2017-04-10 15:48:52 +0200
commit506b228992ccb5a12486e2a8607ee3c81e3467a1 (patch)
tree91b4250b7238640acddb2ec88592d4bbabf0a524
parent3c68b6520e743e8ed9afa908a461f766952e030f (diff)
tdf#106253 Precision as shown for thousand dividor
Info().nThousand contains number of thousands dividors after which digits are not displayed, i.e. 12345 is displayed as 12 with format 0, (in en_US) Change-Id: Ifa5540f2efd8ab006a07eade53f7aa0d31a19eac Reviewed-on: https://gerrit.libreoffice.org/35097 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com> (cherry picked from commit 60d7644a46970e6eaee882e0c5d65692da206c24) Reviewed-on: https://gerrit.libreoffice.org/35204
-rw-r--r--include/svl/zformat.hxx6
-rw-r--r--sc/source/core/data/documen4.cxx6
2 files changed, 12 insertions, 0 deletions
diff --git a/include/svl/zformat.hxx b/include/svl/zformat.hxx
index 4d108815d9a7..ebd652c5e2ec 100644
--- a/include/svl/zformat.hxx
+++ b/include/svl/zformat.hxx
@@ -226,6 +226,12 @@ public:
sal_uInt16 GetFormatIntegerDigits( sal_uInt16 nIx = 0 ) const
{ return NumFor[nIx].Info().nCntPre; }
+ /** Count of hidden integer digits with thousands dividor:
+ * formats like "0," to show only thousands
+ */
+ sal_uInt16 GetThousandDivisorPrecision( sal_uInt16 nIx = 0 ) const
+ { return NumFor[nIx].Info().nThousand * 3; }
+
//! Read/write access on a special sal_uInt16 component, may only be used on the
//! standard format 0, 5000, ... and only by the number formatter!
sal_uInt16 GetLastInsertKey() const
diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx
index 6bb280b20d91..1cdc777fcd91 100644
--- a/sc/source/core/data/documen4.cxx
+++ b/sc/source/core/data/documen4.cxx
@@ -692,6 +692,12 @@ double ScDocument::RoundValueAsShown( double fVal, sal_uInt32 nFormat ) const
{
return pFormat->GetRoundFractionValue( fVal );
}
+ case css::util::NumberFormat::NUMBER:
+ case css::util::NumberFormat::CURRENCY:
+ { // tdf#106253 Thousands dividors for format "0,"
+ nPrecision -= pFormat->GetThousandDivisorPrecision( nIdx );
+ break;
+ }
}
}
else