34 #if !UCONFIG_NO_FORMATTING
44 #ifndef U_HIDE_INTERNAL_API
49 #if UCONFIG_FORMAT_FASTPATHS_49
50 #define UNUM_DECIMALFORMAT_INTERNAL_SIZE 16
58 class CurrencyPluralInfo;
61 class FieldPositionHandler;
62 class DecimalFormatStaticSets;
64 class DecimalFormatImpl;
66 class VisibleDigitsWithExponent;
69 #if defined (_MSC_VER)
757 #ifndef U_HIDE_INTERNAL_API
775 #if UCONFIG_HAVE_PARSEALLINPUT
779 void setParseAllInput(UNumberFormatAttributeValue value);
926 using NumberFormat::format;
1131 const VisibleDigitsWithExponent &number,
1148 const VisibleDigitsWithExponent &number,
1173 using NumberFormat::parse;
1288 virtual void setPositivePrefix(
const UnicodeString& newValue);
1307 virtual void setNegativePrefix(
const UnicodeString& newValue);
1326 virtual void setPositiveSuffix(
const UnicodeString& newValue);
1345 virtual void setNegativeSuffix(
const UnicodeString& newValue);
1357 int32_t getMultiplier(
void)
const;
1369 virtual void setMultiplier(int32_t newValue);
1380 virtual double getRoundingIncrement(
void)
const;
1393 virtual void setRoundingIncrement(
double newValue);
1403 virtual ERoundingMode getRoundingMode(
void)
const;
1413 virtual void setRoundingMode(ERoundingMode roundingMode);
1426 virtual int32_t getFormatWidth(
void)
const;
1442 virtual void setFormatWidth(int32_t width);
1489 virtual EPadPosition getPadPosition(
void)
const;
1507 virtual void setPadPosition(EPadPosition padPos);
1519 virtual UBool isScientificNotation(
void)
const;
1536 virtual void setScientificNotation(
UBool useScientific);
1548 virtual int8_t getMinimumExponentDigits(
void)
const;
1562 virtual void setMinimumExponentDigits(int8_t minExpDig);
1576 virtual UBool isExponentSignAlwaysShown(
void)
const;
1591 virtual void setExponentSignAlwaysShown(
UBool expSignAlways);
1604 int32_t getGroupingSize(
void)
const;
1617 virtual void setGroupingSize(int32_t newValue);
1637 int32_t getSecondaryGroupingSize(
void)
const;
1650 virtual void setSecondaryGroupingSize(int32_t newValue);
1652 #ifndef U_HIDE_INTERNAL_API
1675 int32_t getMinimumGroupingDigits()
const;
1685 virtual void setMinimumGroupingDigits(int32_t newValue);
1697 UBool isDecimalSeparatorAlwaysShown(
void)
const;
1707 virtual void setDecimalSeparatorAlwaysShown(
UBool newValue);
1715 UBool isDecimalPatternMatchRequired(
void)
const;
1726 virtual void setDecimalPatternMatchRequired(
UBool newValue);
1826 virtual void applyLocalizedPattern(
const UnicodeString& pattern,
1839 virtual void applyLocalizedPattern(
const UnicodeString& pattern,
1894 int32_t getMinimumSignificantDigits()
const;
1903 int32_t getMaximumSignificantDigits()
const;
1916 void setMinimumSignificantDigits(int32_t min);
1929 void setMaximumSignificantDigits(int32_t max);
1937 UBool areSignificantDigitsUsed()
const;
1946 void setSignificantDigitsUsed(
UBool useSignificantDigits);
1986 #ifndef U_HIDE_DEPRECATED_API
1992 static const char fgNumberPatterns[];
1995 #ifndef U_HIDE_INTERNAL_API
2002 FixedDecimal getFixedDecimal(
double number,
UErrorCode &status)
const;
2018 FixedDecimal getFixedDecimal(DigitList &number,
UErrorCode &status)
const;
2026 VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
2028 VisibleDigitsWithExponent &digits,
2037 VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
2039 VisibleDigitsWithExponent &digits,
2049 VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
2051 VisibleDigitsWithExponent &digits,
2106 UChar* currency)
const;
2118 UBool complexCurrencyParsing,
2121 DigitList& digits,
UBool* status,
2122 UChar* currency)
const;
2133 UChar* currency)
const;
2135 int32_t skipPadding(
const UnicodeString& text, int32_t position)
const;
2142 UBool complexCurrencyParsing,
2144 UChar* currency)
const;
2153 UBool lenient)
const;
2155 static int32_t skipPatternWhiteSpace(
const UnicodeString& text, int32_t pos);
2157 static int32_t skipUWhiteSpace(
const UnicodeString& text, int32_t pos);
2159 static int32_t skipUWhiteSpaceAndMarks(
const UnicodeString& text, int32_t pos);
2161 static int32_t skipBidiMarks(
const UnicodeString& text, int32_t pos);
2167 UChar* currency)
const;
2190 void setupCurrencyAffixPatterns(
UErrorCode& status);
2193 double getCurrencyRounding(
const UChar* currency,
2197 int getCurrencyFractionDigits(
const UChar* currency,
2201 Hashtable* initHashForAffixPattern(
UErrorCode& status);
2203 void deleteHashForAffixPattern();
2205 void copyHashForAffixPattern(
const Hashtable* source,
2208 DecimalFormatImpl *fImpl;
2239 Hashtable* fAffixPatternsForCurrency;
2244 #if UCONFIG_HAVE_PARSEALLINPUT
2245 UNumberFormatAttributeValue fParseAllInput;
2249 const DecimalFormatStaticSets *fStaticSets;
2253 #ifndef U_HIDE_INTERNAL_API
2258 DigitList& _round(
const DigitList& number, DigitList& adjustedNum,
UBool& isNegative,
UErrorCode& status)
const;