34 #if !UCONFIG_NO_FORMATTING
44 #ifndef U_HIDE_INTERNAL_API
49 #if UCONFIG_FORMAT_FASTPATHS_49
50 #define UNUM_DECIMALFORMAT_INTERNAL_SIZE 16
57 class CurrencyPluralInfo;
60 class FieldPositionHandler;
61 class DecimalFormatStaticSets;
63 class DecimalFormatImpl;
65 class VisibleDigitsWithExponent;
68 #if defined (_MSC_VER)
756 #ifndef U_HIDE_INTERNAL_API
774 #if UCONFIG_HAVE_PARSEALLINPUT
778 void setParseAllInput(UNumberFormatAttributeValue value);
925 using NumberFormat::format;
1130 const VisibleDigitsWithExponent &number,
1147 const VisibleDigitsWithExponent &number,
1172 using NumberFormat::parse;
1287 virtual void setPositivePrefix(
const UnicodeString& newValue);
1306 virtual void setNegativePrefix(
const UnicodeString& newValue);
1325 virtual void setPositiveSuffix(
const UnicodeString& newValue);
1344 virtual void setNegativeSuffix(
const UnicodeString& newValue);
1356 int32_t getMultiplier(
void)
const;
1368 virtual void setMultiplier(int32_t newValue);
1379 virtual double getRoundingIncrement(
void)
const;
1392 virtual void setRoundingIncrement(
double newValue);
1402 virtual ERoundingMode getRoundingMode(
void)
const;
1412 virtual void setRoundingMode(ERoundingMode roundingMode);
1425 virtual int32_t getFormatWidth(
void)
const;
1441 virtual void setFormatWidth(int32_t width);
1488 virtual EPadPosition getPadPosition(
void)
const;
1506 virtual void setPadPosition(EPadPosition padPos);
1518 virtual UBool isScientificNotation(
void)
const;
1535 virtual void setScientificNotation(
UBool useScientific);
1547 virtual int8_t getMinimumExponentDigits(
void)
const;
1561 virtual void setMinimumExponentDigits(int8_t minExpDig);
1575 virtual UBool isExponentSignAlwaysShown(
void)
const;
1590 virtual void setExponentSignAlwaysShown(
UBool expSignAlways);
1603 int32_t getGroupingSize(
void)
const;
1616 virtual void setGroupingSize(int32_t newValue);
1636 int32_t getSecondaryGroupingSize(
void)
const;
1649 virtual void setSecondaryGroupingSize(int32_t newValue);
1651 #ifndef U_HIDE_INTERNAL_API
1674 int32_t getMinimumGroupingDigits()
const;
1687 virtual void setMinimumGroupingDigits(int32_t newValue);
1698 UBool isDecimalSeparatorAlwaysShown(
void)
const;
1708 virtual void setDecimalSeparatorAlwaysShown(
UBool newValue);
1716 UBool isDecimalPatternMatchRequired(
void)
const;
1727 virtual void setDecimalPatternMatchRequired(
UBool newValue);
1827 virtual void applyLocalizedPattern(
const UnicodeString& pattern,
1840 virtual void applyLocalizedPattern(
const UnicodeString& pattern,
1895 int32_t getMinimumSignificantDigits()
const;
1904 int32_t getMaximumSignificantDigits()
const;
1917 void setMinimumSignificantDigits(int32_t min);
1930 void setMaximumSignificantDigits(int32_t max);
1938 UBool areSignificantDigitsUsed()
const;
1947 void setSignificantDigitsUsed(
UBool useSignificantDigits);
1987 #ifndef U_HIDE_DEPRECATED_API
1993 static const char fgNumberPatterns[];
1996 #ifndef U_HIDE_INTERNAL_API
2003 FixedDecimal getFixedDecimal(
double number,
UErrorCode &status)
const;
2019 FixedDecimal getFixedDecimal(DigitList &number,
UErrorCode &status)
const;
2027 VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
2029 VisibleDigitsWithExponent &digits,
2038 VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
2040 VisibleDigitsWithExponent &digits,
2050 VisibleDigitsWithExponent &initVisibleDigitsWithExponent(
2052 VisibleDigitsWithExponent &digits,
2107 UChar* currency)
const;
2119 UBool complexCurrencyParsing,
2122 DigitList& digits,
UBool* status,
2123 UChar* currency)
const;
2134 UChar* currency)
const;
2136 int32_t skipPadding(
const UnicodeString& text, int32_t position)
const;
2143 UBool complexCurrencyParsing,
2145 UChar* currency)
const;
2154 UBool lenient)
const;
2156 static int32_t skipPatternWhiteSpace(
const UnicodeString& text, int32_t pos);
2158 static int32_t skipUWhiteSpace(
const UnicodeString& text, int32_t pos);
2160 static int32_t skipUWhiteSpaceAndMarks(
const UnicodeString& text, int32_t pos);
2162 static int32_t skipBidiMarks(
const UnicodeString& text, int32_t pos);
2168 UChar* currency)
const;
2191 void setupCurrencyAffixPatterns(
UErrorCode& status);
2194 double getCurrencyRounding(
const UChar* currency,
2198 int getCurrencyFractionDigits(
const UChar* currency,
2202 Hashtable* initHashForAffixPattern(
UErrorCode& status);
2204 void deleteHashForAffixPattern();
2206 void copyHashForAffixPattern(
const Hashtable* source,
2209 DecimalFormatImpl *fImpl;
2240 Hashtable* fAffixPatternsForCurrency;
2245 #if UCONFIG_HAVE_PARSEALLINPUT
2246 UNumberFormatAttributeValue fParseAllInput;
2250 const DecimalFormatStaticSets *fStaticSets;
2254 #ifndef U_HIDE_INTERNAL_API
2259 DigitList& _round(
const DigitList& number, DigitList& adjustedNum,
UBool& isNegative,
UErrorCode& status)
const;