Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(245)

Side by Side Diff: source/i18n/unicode/decimfmt.h

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/i18n/unicode/dcfmtsym.h ('k') | source/i18n/unicode/dtfmtsym.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ******************************************************************************** 2 ********************************************************************************
3 * Copyright (C) 1997-2013, International Business Machines 3 * Copyright (C) 1997-2014, International Business Machines
4 * Corporation and others. All Rights Reserved. 4 * Corporation and others. All Rights Reserved.
5 ******************************************************************************** 5 ********************************************************************************
6 * 6 *
7 * File DECIMFMT.H 7 * File DECIMFMT.H
8 * 8 *
9 * Modification History: 9 * Modification History:
10 * 10 *
11 * Date Name Description 11 * Date Name Description
12 * 02/19/97 aliu Converted from java. 12 * 02/19/97 aliu Converted from java.
13 * 03/20/97 clhuang Updated per C++ implementation. 13 * 03/20/97 clhuang Updated per C++ implementation.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 class CurrencyPluralInfo; 56 class CurrencyPluralInfo;
57 class Hashtable; 57 class Hashtable;
58 class UnicodeSet; 58 class UnicodeSet;
59 class FieldPositionHandler; 59 class FieldPositionHandler;
60 class DecimalFormatStaticSets; 60 class DecimalFormatStaticSets;
61 class FixedDecimal; 61 class FixedDecimal;
62 62
63 // explicit template instantiation. see digitlst.h 63 // explicit template instantiation. see digitlst.h
64 #if defined (_MSC_VER) 64 #if defined (_MSC_VER)
65 template class U_I18N_API EnumSet<UNumberFormatAttribute, 65 template class U_I18N_API EnumSet<UNumberFormatAttribute,
66 UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1, 66 UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1,
67 UNUM_LIMIT_BOOLEAN_ATTRIBUTE>; 67 UNUM_LIMIT_BOOLEAN_ATTRIBUTE>;
68 #endif 68 #endif
69 69
70 /** 70 /**
71 * DecimalFormat is a concrete subclass of NumberFormat that formats decimal 71 * DecimalFormat is a concrete subclass of NumberFormat that formats decimal
72 * numbers. It has a variety of features designed to make it possible to parse 72 * numbers. It has a variety of features designed to make it possible to parse
73 * and format numbers in any locale, including support for Western, Arabic, or 73 * and format numbers in any locale, including support for Western, Arabic, or
74 * Indic digits. It also supports different flavors of numbers, including 74 * Indic digits. It also supports different flavors of numbers, including
75 * integers ("123"), fixed-point numbers ("123.4"), scientific notation 75 * integers ("123"), fixed-point numbers ("123.4"), scientific notation
76 * ("1.23E4"), percentages ("12%"), and currency amounts ("$123", "USD123", 76 * ("1.23E4"), percentages ("12%"), and currency amounts ("$123", "USD123",
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 kRoundFloor, /**< Round towards negative infinity */ 671 kRoundFloor, /**< Round towards negative infinity */
672 kRoundDown, /**< Round towards zero */ 672 kRoundDown, /**< Round towards zero */
673 kRoundUp, /**< Round away from zero */ 673 kRoundUp, /**< Round away from zero */
674 kRoundHalfEven, /**< Round towards the nearest integer, or 674 kRoundHalfEven, /**< Round towards the nearest integer, or
675 towards the nearest even integer if equidistant */ 675 towards the nearest even integer if equidistant */
676 kRoundHalfDown, /**< Round towards the nearest integer, or 676 kRoundHalfDown, /**< Round towards the nearest integer, or
677 towards zero if equidistant */ 677 towards zero if equidistant */
678 kRoundHalfUp, /**< Round towards the nearest integer, or 678 kRoundHalfUp, /**< Round towards the nearest integer, or
679 away from zero if equidistant */ 679 away from zero if equidistant */
680 /** 680 /**
681 * Return U_FORMAT_INEXACT_ERROR if number does not format exactly. 681 * Return U_FORMAT_INEXACT_ERROR if number does not format exactly.
682 * @stable ICU 4.8 682 * @stable ICU 4.8
683 */ 683 */
684 kRoundUnnecessary 684 kRoundUnnecessary
685 }; 685 };
686 686
687 /** 687 /**
688 * Pad position. 688 * Pad position.
689 * @stable ICU 2.4 689 * @stable ICU 2.4
690 */ 690 */
691 enum EPadPosition { 691 enum EPadPosition {
692 kPadBeforePrefix, 692 kPadBeforePrefix,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 778
779 779
780 /** 780 /**
781 * Set an integer attribute on this DecimalFormat. 781 * Set an integer attribute on this DecimalFormat.
782 * May return U_UNSUPPORTED_ERROR if this instance does not support 782 * May return U_UNSUPPORTED_ERROR if this instance does not support
783 * the specified attribute. 783 * the specified attribute.
784 * @param attr the attribute to set 784 * @param attr the attribute to set
785 * @param newvalue new value 785 * @param newvalue new value
786 * @param status the error type 786 * @param status the error type
787 * @return *this - for chaining (example: format.setAttribute(...).setAttrib ute(...) ) 787 * @return *this - for chaining (example: format.setAttribute(...).setAttrib ute(...) )
788 * @draft ICU 51 788 * @stable ICU 51
789 */ 789 */
790 virtual DecimalFormat& setAttribute( UNumberFormatAttribute attr, 790 virtual DecimalFormat& setAttribute( UNumberFormatAttribute attr,
791 int32_t newvalue, 791 int32_t newvalue,
792 UErrorCode &status); 792 UErrorCode &status);
793 793
794 /** 794 /**
795 * Get an integer 795 * Get an integer
796 * May return U_UNSUPPORTED_ERROR if this instance does not support 796 * May return U_UNSUPPORTED_ERROR if this instance does not support
797 * the specified attribute. 797 * the specified attribute.
798 * @param attr the attribute to set 798 * @param attr the attribute to set
799 * @param status the error type 799 * @param status the error type
800 * @return the attribute value. Undefined if there is an error. 800 * @return the attribute value. Undefined if there is an error.
801 * @draft ICU 51 801 * @stable ICU 51
802 */ 802 */
803 virtual int32_t getAttribute( UNumberFormatAttribute attr, 803 virtual int32_t getAttribute( UNumberFormatAttribute attr,
804 UErrorCode &status) const; 804 UErrorCode &status) const;
805 805
806
807 /**
808 * Set whether or not grouping will be used in this format.
809 * @param newValue True, grouping will be used in this format.
810 * @see getGroupingUsed
811 * @draft ICU 53
812 */
813 virtual void setGroupingUsed(UBool newValue);
806 814
815 /**
816 * Sets whether or not numbers should be parsed as integers only.
817 * @param value set True, this format will parse numbers as integers
818 * only.
819 * @see isParseIntegerOnly
820 * @draft ICU 53
821 */
822 virtual void setParseIntegerOnly(UBool value);
823
824 /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */
825 /**
826 * Set a particular UDisplayContext value in the formatter, such as
827 * UDISPCTX_CAPITALIZATION_FOR_STANDALONE.
828 * @param value The UDisplayContext value to set.
829 * @param status Input/output status. If at entry this indicates a failure
830 * status, the function will do nothing; otherwise this will b e
831 * updated with any new status from the function.
832 * @draft ICU 53
833 */
834 virtual void setContext(UDisplayContext value, UErrorCode& status);
807 835
808 /** 836 /**
809 * Create a DecimalFormat from the given pattern and symbols. 837 * Create a DecimalFormat from the given pattern and symbols.
810 * Use this constructor when you need to completely customize the 838 * Use this constructor when you need to completely customize the
811 * behavior of the format. 839 * behavior of the format.
812 * <P> 840 * <P>
813 * To obtain standard formats for a given 841 * To obtain standard formats for a given
814 * locale, use the factory methods on NumberFormat such as 842 * locale, use the factory methods on NumberFormat such as
815 * createInstance or createCurrencyInstance. If you need only minor adjustme nts 843 * createInstance or createCurrencyInstance. If you need only minor adjustme nts
816 * to a standard format, you can modify the format returned by 844 * to a standard format, you can modify the format returned by
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 * @return Reference to 'appendTo' parameter. 1086 * @return Reference to 'appendTo' parameter.
1059 * @stable 4.4 1087 * @stable 4.4
1060 */ 1088 */
1061 virtual UnicodeString& format(const StringPiece &number, 1089 virtual UnicodeString& format(const StringPiece &number,
1062 UnicodeString& appendTo, 1090 UnicodeString& appendTo,
1063 FieldPositionIterator* posIter, 1091 FieldPositionIterator* posIter,
1064 UErrorCode& status) const; 1092 UErrorCode& status) const;
1065 1093
1066 1094
1067 /** 1095 /**
1068 * Format a decimal number. 1096 * Format a decimal number.
1069 * The number is a DigitList wrapper onto a floating point decimal number. 1097 * The number is a DigitList wrapper onto a floating point decimal number.
1070 * The default implementation in NumberFormat converts the decimal number 1098 * The default implementation in NumberFormat converts the decimal number
1071 * to a double and formats that. 1099 * to a double and formats that.
1072 * 1100 *
1073 * @param number The number, a DigitList format Decimal Floating Point. 1101 * @param number The number, a DigitList format Decimal Floating Point.
1074 * @param appendTo Output parameter to receive result. 1102 * @param appendTo Output parameter to receive result.
1075 * Result is appended to existing contents. 1103 * Result is appended to existing contents.
1076 * @param posIter On return, can be used to iterate over positions 1104 * @param posIter On return, can be used to iterate over positions
1077 * of fields generated by this format call. 1105 * of fields generated by this format call.
1078 * @param status Output param filled with success/failure status. 1106 * @param status Output param filled with success/failure status.
1079 * @return Reference to 'appendTo' parameter. 1107 * @return Reference to 'appendTo' parameter.
1080 * @internal 1108 * @internal
1081 */ 1109 */
1082 virtual UnicodeString& format(const DigitList &number, 1110 virtual UnicodeString& format(const DigitList &number,
1083 UnicodeString& appendTo, 1111 UnicodeString& appendTo,
1084 FieldPositionIterator* posIter, 1112 FieldPositionIterator* posIter,
1085 UErrorCode& status) const; 1113 UErrorCode& status) const;
1086 1114
1087 /** 1115 /**
1088 * Format a decimal number. 1116 * Format a decimal number.
1089 * The number is a DigitList wrapper onto a floating point decimal number. 1117 * The number is a DigitList wrapper onto a floating point decimal number.
1090 * The default implementation in NumberFormat converts the decimal number 1118 * The default implementation in NumberFormat converts the decimal number
1091 * to a double and formats that. 1119 * to a double and formats that.
1092 * 1120 *
1093 * @param number The number, a DigitList format Decimal Floating Point. 1121 * @param number The number, a DigitList format Decimal Floating Point.
1094 * @param appendTo Output parameter to receive result. 1122 * @param appendTo Output parameter to receive result.
1095 * Result is appended to existing contents. 1123 * Result is appended to existing contents.
1096 * @param pos On input: an alignment field, if desired. 1124 * @param pos On input: an alignment field, if desired.
1097 * On output: the offsets of the alignment field. 1125 * On output: the offsets of the alignment field.
1098 * @param status Output param filled with success/failure status. 1126 * @param status Output param filled with success/failure status.
1099 * @return Reference to 'appendTo' parameter. 1127 * @return Reference to 'appendTo' parameter.
1100 * @internal 1128 * @internal
1101 */ 1129 */
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 * Get the rounding mode. 1358 * Get the rounding mode.
1331 * @return A rounding mode 1359 * @return A rounding mode
1332 * @see #setRoundingIncrement 1360 * @see #setRoundingIncrement
1333 * @see #getRoundingIncrement 1361 * @see #getRoundingIncrement
1334 * @see #setRoundingMode 1362 * @see #setRoundingMode
1335 * @stable ICU 2.0 1363 * @stable ICU 2.0
1336 */ 1364 */
1337 virtual ERoundingMode getRoundingMode(void) const; 1365 virtual ERoundingMode getRoundingMode(void) const;
1338 1366
1339 /** 1367 /**
1340 * Set the rounding mode. 1368 * Set the rounding mode.
1341 * @param roundingMode A rounding mode 1369 * @param roundingMode A rounding mode
1342 * @see #setRoundingIncrement 1370 * @see #setRoundingIncrement
1343 * @see #getRoundingIncrement 1371 * @see #getRoundingIncrement
1344 * @see #getRoundingMode 1372 * @see #getRoundingMode
1345 * @stable ICU 2.0 1373 * @stable ICU 2.0
1346 */ 1374 */
1347 virtual void setRoundingMode(ERoundingMode roundingMode); 1375 virtual void setRoundingMode(ERoundingMode roundingMode);
1348 1376
1349 /** 1377 /**
1350 * Get the width to which the output of format() is padded. 1378 * Get the width to which the output of format() is padded.
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
1596 /** 1624 /**
1597 * Allows you to set the behavior of the decimal separator with integers. 1625 * Allows you to set the behavior of the decimal separator with integers.
1598 * (The decimal separator will always appear with decimals.) 1626 * (The decimal separator will always appear with decimals.)
1599 * 1627 *
1600 * @param newValue set TRUE if the decimal separator will always appear w ith decimals. 1628 * @param newValue set TRUE if the decimal separator will always appear w ith decimals.
1601 * Example: Decimal ON: 12345 -> 12345.; OFF: 12345 -> 12345 1629 * Example: Decimal ON: 12345 -> 12345.; OFF: 12345 -> 12345
1602 * @stable ICU 2.0 1630 * @stable ICU 2.0
1603 */ 1631 */
1604 virtual void setDecimalSeparatorAlwaysShown(UBool newValue); 1632 virtual void setDecimalSeparatorAlwaysShown(UBool newValue);
1605 1633
1634 #ifndef U_HIDE_DRAFT_API
1635 /**
1636 * Allows you to get the parse behavior of the pattern decimal mark.
1637 *
1638 * @return TRUE if input must contain a match to decimal mark in pattern
1639 * @draft ICU 54
1640 */
1641 UBool isDecimalPatternMatchRequired(void) const;
1642 #endif /* U_HIDE_DRAFT_API */
1643
1644 /**
1645 * Allows you to set the behavior of the pattern decimal mark.
1646 *
1647 * if TRUE, the input must have a decimal mark if one was specified in the p attern. When
1648 * FALSE the decimal mark may be omitted from the input.
1649 *
1650 * @param newValue set TRUE if input must contain a match to decimal mark in pattern
1651 * @draft ICU 54
1652 */
1653 virtual void setDecimalPatternMatchRequired(UBool newValue);
1654
1655
1606 /** 1656 /**
1607 * Synthesizes a pattern string that represents the current state 1657 * Synthesizes a pattern string that represents the current state
1608 * of this Format object. 1658 * of this Format object.
1609 * 1659 *
1610 * @param result Output param which will receive the pattern. 1660 * @param result Output param which will receive the pattern.
1611 * Previous contents are deleted. 1661 * Previous contents are deleted.
1612 * @return A reference to 'result'. 1662 * @return A reference to 'result'.
1613 * @see applyPattern 1663 * @see applyPattern
1614 * @stable ICU 2.0 1664 * @stable ICU 2.0
1615 */ 1665 */
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
1837 */ 1887 */
1838 virtual void setCurrency(const UChar* theCurrency, UErrorCode& ec); 1888 virtual void setCurrency(const UChar* theCurrency, UErrorCode& ec);
1839 1889
1840 /** 1890 /**
1841 * Sets the currency used to display currency amounts. See 1891 * Sets the currency used to display currency amounts. See
1842 * setCurrency(const UChar*, UErrorCode&). 1892 * setCurrency(const UChar*, UErrorCode&).
1843 * @deprecated ICU 3.0. Use setCurrency(const UChar*, UErrorCode&). 1893 * @deprecated ICU 3.0. Use setCurrency(const UChar*, UErrorCode&).
1844 */ 1894 */
1845 virtual void setCurrency(const UChar* theCurrency); 1895 virtual void setCurrency(const UChar* theCurrency);
1846 1896
1897 #ifndef U_HIDE_DRAFT_API
1898 /**
1899 * Sets the <tt>Currency Context</tt> object used to display currency.
1900 * This takes effect immediately, if this format is a
1901 * currency format.
1902 * @param currencyContext new currency context object to use.
1903 * @draft ICU 54
1904 */
1905 void setCurrencyUsage(UCurrencyUsage newUsage, UErrorCode* ec);
1906
1907 /**
1908 * Returns the <tt>Currency Context</tt> object used to display currency
1909 * @draft ICU 54
1910 */
1911 UCurrencyUsage getCurrencyUsage() const;
1912 #endif /* U_HIDE_DRAFT_API */
1913
1914
1915 #ifndef U_HIDE_DEPRECATED_API
1847 /** 1916 /**
1848 * The resource tags we use to retrieve decimal format data from 1917 * The resource tags we use to retrieve decimal format data from
1849 * locale resource bundles. 1918 * locale resource bundles.
1850 * @deprecated ICU 3.4. This string has no public purpose. Please don't use it. 1919 * @deprecated ICU 3.4. This string has no public purpose. Please don't use it.
1851 */ 1920 */
1852 static const char fgNumberPatterns[]; 1921 static const char fgNumberPatterns[];
1922 #endif /* U_HIDE_DEPRECATED_API */
1853 1923
1854 #ifndef U_HIDE_INTERNAL_API 1924 #ifndef U_HIDE_INTERNAL_API
1855 /** 1925 /**
1856 * Get a FixedDecimal corresponding to a double as it would be 1926 * Get a FixedDecimal corresponding to a double as it would be
1857 * formatted by this DecimalFormat. 1927 * formatted by this DecimalFormat.
1858 * Internal, not intended for public use. 1928 * Internal, not intended for public use.
1859 * @internal 1929 * @internal
1860 */ 1930 */
1861 FixedDecimal getFixedDecimal(double number, UErrorCode &status) const; 1931 FixedDecimal getFixedDecimal(double number, UErrorCode &status) const;
1862 1932
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 * @param appendTo Output parameter to receive result. 2051 * @param appendTo Output parameter to receive result.
1982 * Result is appended to existing contents. 2052 * Result is appended to existing contents.
1983 * @param handler Records information about field positions. 2053 * @param handler Records information about field positions.
1984 * @param digits the digits to be formatted. 2054 * @param digits the digits to be formatted.
1985 * @param isInteger if TRUE format the digits as Integer. 2055 * @param isInteger if TRUE format the digits as Integer.
1986 * @return Reference to 'appendTo' parameter. 2056 * @return Reference to 'appendTo' parameter.
1987 */ 2057 */
1988 UnicodeString& subformat(UnicodeString& appendTo, 2058 UnicodeString& subformat(UnicodeString& appendTo,
1989 FieldPositionHandler& handler, 2059 FieldPositionHandler& handler,
1990 DigitList& digits, 2060 DigitList& digits,
1991 UBool isInteger, 2061 UBool isInteger,
1992 UErrorCode &status) const; 2062 UErrorCode &status) const;
1993 2063
1994 2064
1995 void parse(const UnicodeString& text, 2065 void parse(const UnicodeString& text,
1996 Formattable& result, 2066 Formattable& result,
1997 ParsePosition& pos, 2067 ParsePosition& pos,
1998 UChar* currency) const; 2068 UChar* currency) const;
1999 2069
2000 enum { 2070 enum {
2001 fgStatusInfinite, 2071 fgStatusInfinite,
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
2130 void setupCurrencyAffixPatterns(UErrorCode& status); 2200 void setupCurrencyAffixPatterns(UErrorCode& status);
2131 2201
2132 // set up the currency affixes used in currency plural formatting. 2202 // set up the currency affixes used in currency plural formatting.
2133 // It sets up both fAffixesForCurrency for currency pattern if the current 2203 // It sets up both fAffixesForCurrency for currency pattern if the current
2134 // pattern contains 3 currency signs, 2204 // pattern contains 3 currency signs,
2135 // and it sets up fPluralAffixesForCurrency for currency plural patterns. 2205 // and it sets up fPluralAffixesForCurrency for currency plural patterns.
2136 void setupCurrencyAffixes(const UnicodeString& pattern, 2206 void setupCurrencyAffixes(const UnicodeString& pattern,
2137 UBool setupForCurrentPattern, 2207 UBool setupForCurrentPattern,
2138 UBool setupForPluralPattern, 2208 UBool setupForPluralPattern,
2139 UErrorCode& status); 2209 UErrorCode& status);
2210
2211 // get the currency rounding with respect to currency usage
2212 double getCurrencyRounding(const UChar* currency,
2213 UErrorCode* ec) const;
2214
2215 // get the currency fraction with respect to currency usage
2216 int getCurrencyFractionDigits(const UChar* currency,
2217 UErrorCode* ec) const;
2140 2218
2141 // hashtable operations 2219 // hashtable operations
2142 Hashtable* initHashForAffixPattern(UErrorCode& status); 2220 Hashtable* initHashForAffixPattern(UErrorCode& status);
2143 Hashtable* initHashForAffix(UErrorCode& status); 2221 Hashtable* initHashForAffix(UErrorCode& status);
2144 2222
2145 void deleteHashForAffixPattern(); 2223 void deleteHashForAffixPattern();
2146 void deleteHashForAffix(Hashtable*& table); 2224 void deleteHashForAffix(Hashtable*& table);
2147 2225
2148 void copyHashForAffixPattern(const Hashtable* source, 2226 void copyHashForAffixPattern(const Hashtable* source,
2149 Hashtable* target, UErrorCode& status); 2227 Hashtable* target, UErrorCode& status);
2150 void copyHashForAffix(const Hashtable* source, 2228 void copyHashForAffix(const Hashtable* source,
2151 Hashtable* target, UErrorCode& status); 2229 Hashtable* target, UErrorCode& status);
2152 2230
2153 UnicodeString& _format(int64_t number, 2231 UnicodeString& _format(int64_t number,
2154 UnicodeString& appendTo, 2232 UnicodeString& appendTo,
2155 FieldPositionHandler& handler, 2233 FieldPositionHandler& handler,
2156 UErrorCode &status) const; 2234 UErrorCode &status) const;
2157 UnicodeString& _format(double number, 2235 UnicodeString& _format(double number,
2158 UnicodeString& appendTo, 2236 UnicodeString& appendTo,
2159 FieldPositionHandler& handler, 2237 FieldPositionHandler& handler,
2160 UErrorCode &status) const; 2238 UErrorCode &status) const;
2161 UnicodeString& _format(const DigitList &number, 2239 UnicodeString& _format(const DigitList &number,
2162 UnicodeString& appendTo, 2240 UnicodeString& appendTo,
2163 FieldPositionHandler& handler, 2241 FieldPositionHandler& handler,
2164 UErrorCode &status) const; 2242 UErrorCode &status) const;
2165 2243
2166 // currency sign count
2167 enum {
2168 fgCurrencySignCountZero,
2169 fgCurrencySignCountInSymbolFormat,
2170 fgCurrencySignCountInISOFormat,
2171 fgCurrencySignCountInPluralFormat
2172 } CurrencySignCount;
2173
2174 /** 2244 /**
2175 * Constants. 2245 * Constants.
2176 */ 2246 */
2177 2247
2178 UnicodeString fPositivePrefix; 2248 UnicodeString fPositivePrefix;
2179 UnicodeString fPositiveSuffix; 2249 UnicodeString fPositiveSuffix;
2180 UnicodeString fNegativePrefix; 2250 UnicodeString fNegativePrefix;
2181 UnicodeString fNegativeSuffix; 2251 UnicodeString fNegativeSuffix;
2182 UnicodeString* fPosPrefixPattern; 2252 UnicodeString* fPosPrefixPattern;
2183 UnicodeString* fPosSuffixPattern; 2253 UnicodeString* fPosSuffixPattern;
2184 UnicodeString* fNegPrefixPattern; 2254 UnicodeString* fNegPrefixPattern;
2185 UnicodeString* fNegSuffixPattern; 2255 UnicodeString* fNegSuffixPattern;
2186 2256
2187 /** 2257 /**
2188 * Formatter for ChoiceFormat-based currency names. If this field 2258 * Formatter for ChoiceFormat-based currency names. If this field
2189 * is not null, then delegate to it to format currency symbols. 2259 * is not null, then delegate to it to format currency symbols.
2190 * @since ICU 2.6 2260 * @since ICU 2.6
2191 */ 2261 */
2192 ChoiceFormat* fCurrencyChoice; 2262 ChoiceFormat* fCurrencyChoice;
2193 2263
2194 DigitList * fMultiplier; // NULL for multiplier of one 2264 DigitList * fMultiplier; // NULL for multiplier of one
2195 int32_t fScale; 2265 int32_t fScale;
2196 int32_t fGroupingSize; 2266 int32_t fGroupingSize;
2197 int32_t fGroupingSize2; 2267 int32_t fGroupingSize2;
2198 UBool fDecimalSeparatorAlwaysShown; 2268 UBool fDecimalSeparatorAlwaysShown;
2199 DecimalFormatSymbols* fSymbols; 2269 DecimalFormatSymbols* fSymbols;
2200 2270
2201 UBool fUseSignificantDigits; 2271 UBool fUseSignificantDigits;
2202 int32_t fMinSignificantDigits; 2272 int32_t fMinSignificantDigits;
2203 int32_t fMaxSignificantDigits; 2273 int32_t fMaxSignificantDigits;
2204 2274
2205 UBool fUseExponentialNotation; 2275 UBool fUseExponentialNotation;
2206 int8_t fMinExponentDigits; 2276 int8_t fMinExponentDigits;
2207 UBool fExponentSignAlwaysShown; 2277 UBool fExponentSignAlwaysShown;
2208 2278
2209 EnumSet<UNumberFormatAttribute, 2279 EnumSet<UNumberFormatAttribute,
2210 UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1, 2280 UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1,
2211 UNUM_LIMIT_BOOLEAN_ATTRIBUTE> 2281 UNUM_LIMIT_BOOLEAN_ATTRIBUTE>
2212 fBoolFlags; 2282 fBoolFlags;
2213 2283
2214 DigitList* fRoundingIncrement; // NULL if no rounding incremen t specified. 2284 DigitList* fRoundingIncrement; // NULL if no rounding incremen t specified.
2215 ERoundingMode fRoundingMode; 2285 ERoundingMode fRoundingMode;
2216 2286
2217 UChar32 fPad; 2287 UChar32 fPad;
2218 int32_t fFormatWidth; 2288 int32_t fFormatWidth;
2219 EPadPosition fPadPosition; 2289 EPadPosition fPadPosition;
2220 2290
2221 /* 2291 /*
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
2328 2398
2329 // Information needed for DecimalFormat to format/parse currency plural. 2399 // Information needed for DecimalFormat to format/parse currency plural.
2330 CurrencyPluralInfo* fCurrencyPluralInfo; 2400 CurrencyPluralInfo* fCurrencyPluralInfo;
2331 2401
2332 #if UCONFIG_HAVE_PARSEALLINPUT 2402 #if UCONFIG_HAVE_PARSEALLINPUT
2333 UNumberFormatAttributeValue fParseAllInput; 2403 UNumberFormatAttributeValue fParseAllInput;
2334 #endif 2404 #endif
2335 2405
2336 // Decimal Format Static Sets singleton. 2406 // Decimal Format Static Sets singleton.
2337 const DecimalFormatStaticSets *fStaticSets; 2407 const DecimalFormatStaticSets *fStaticSets;
2338 2408 »
2409 // Currency Usage(STANDARD vs CASH)
2410 UCurrencyUsage fCurrencyUsage;
2339 2411
2340 protected: 2412 protected:
2341 2413
2342 #ifndef U_HIDE_INTERNAL_API 2414 #ifndef U_HIDE_INTERNAL_API
2343 /** 2415 /**
2344 * Rounds a value according to the rules of this object. 2416 * Rounds a value according to the rules of this object.
2345 * @internal 2417 * @internal
2346 */ 2418 */
2347 DigitList& _round(const DigitList& number, DigitList& adjustedNum, UBool& is Negative, UErrorCode& status) const; 2419 DigitList& _round(const DigitList& number, DigitList& adjustedNum, UBool& is Negative, UErrorCode& status) const;
2348 #endif /* U_HIDE_INTERNAL_API */ 2420 #endif /* U_HIDE_INTERNAL_API */
(...skipping 25 matching lines...) Expand all
2374 * this number, it wouldn't make sense anyway, and this is just to make sure 2446 * this number, it wouldn't make sense anyway, and this is just to make sure
2375 * that someone turning on scientific mode with default settings doesn't 2447 * that someone turning on scientific mode with default settings doesn't
2376 * end up with lots of zeroes. 2448 * end up with lots of zeroes.
2377 * @stable ICU 2.8 2449 * @stable ICU 2.8
2378 */ 2450 */
2379 static const int32_t kMaxScientificIntegerDigits; 2451 static const int32_t kMaxScientificIntegerDigits;
2380 2452
2381 #if UCONFIG_FORMAT_FASTPATHS_49 2453 #if UCONFIG_FORMAT_FASTPATHS_49
2382 private: 2454 private:
2383 /** 2455 /**
2384 * Internal state. 2456 * Internal state.
2385 * @internal 2457 * @internal
2386 */ 2458 */
2387 uint8_t fReserved[UNUM_DECIMALFORMAT_INTERNAL_SIZE]; 2459 uint8_t fReserved[UNUM_DECIMALFORMAT_INTERNAL_SIZE];
2388 2460
2389 2461
2390 /** 2462 /**
2391 * Called whenever any state changes. Recomputes whether fastpath is OK to u se. 2463 * Called whenever any state changes. Recomputes whether fastpath is OK to u se.
2392 */ 2464 */
2393 void handleChanged(); 2465 void handleChanged();
2394 #endif 2466 #endif
2395 }; 2467 };
2396 2468
2397 inline const UnicodeString & 2469 inline const UnicodeString &
2398 DecimalFormat::getConstSymbol(DecimalFormatSymbols::ENumberFormatSymbol symbol) const { 2470 DecimalFormat::getConstSymbol(DecimalFormatSymbols::ENumberFormatSymbol symbol) const {
2399 return fSymbols->getConstSymbol(symbol); 2471 return fSymbols->getConstSymbol(symbol);
2400 } 2472 }
2401 2473
2402 U_NAMESPACE_END 2474 U_NAMESPACE_END
2403 2475
2404 #endif /* #if !UCONFIG_NO_FORMATTING */ 2476 #endif /* #if !UCONFIG_NO_FORMATTING */
2405 2477
2406 #endif // _DECIMFMT 2478 #endif // _DECIMFMT
2407 //eof 2479 //eof
OLDNEW
« no previous file with comments | « source/i18n/unicode/dcfmtsym.h ('k') | source/i18n/unicode/dtfmtsym.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698