diff options
Diffstat (limited to 'svl/source/numbers/zforscan.cxx')
-rw-r--r-- | svl/source/numbers/zforscan.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx index d29ecddb1d16..3687ebc4756b 100644 --- a/svl/source/numbers/zforscan.cxx +++ b/svl/source/numbers/zforscan.cxx @@ -39,6 +39,8 @@ using namespace svt; const sal_Unicode cNoBreakSpace = 0xA0; const sal_Unicode cNarrowNoBreakSpace = 0x202F; +const int MaxCntPost = 20; //max dec places allow by rtl_math_round + const ::std::vector<OUString> ImpSvNumberformatScan::sEnglishKeyword = { // Syntax keywords in English (USA) //! All keywords MUST be UPPERCASE! In same order as NfKeywordTable @@ -2735,7 +2737,7 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) switch( sStrArray[i][0] ) { case '0': - if ( bTimePart && Is100SecZero( i, bDecSep ) ) + if (bTimePart && Is100SecZero(i, bDecSep) && nCounter < MaxCntPost) { bDecSep = true; nTypeArray[i] = NF_SYMBOLTYPE_DIGIT; @@ -2743,7 +2745,7 @@ sal_Int32 ImpSvNumberformatScan::FinalScan( OUString& rString ) nCounter++; i++; while (i < nStringsCnt && - sStrArray[i][0] == '0') + sStrArray[i][0] == '0' && nCounter < MaxCntPost) { rStr += sStrArray[i]; nTypeArray[i] = NF_SYMBOLTYPE_EMPTY; |