23 * For more detail on rounding modes, see: 24 * https://unicode-org.github.io/icu/userguide/format_parse/numbers/rounding-modes 25 * 26 * @stable ICU 2.0 27 */ 28 typedef enum UNumberFormatRoundingMode { 29 UNUM_ROUND_CEILING, 30 UNUM_ROUND_FLOOR, 31 UNUM_ROUND_DOWN, 32 UNUM_ROUND_UP, 33 /** 34 * Half-even rounding 35 * @stable, ICU 3.8 36 */ 37 UNUM_ROUND_HALFEVEN, 38 #ifndef U_HIDE_DEPRECATED_API 39 /** 40 * Half-even rounding, misspelled name 41 * @deprecated, ICU 3.8 42 */ 43 UNUM_FOUND_HALFEVEN = UNUM_ROUND_HALFEVEN, 44 #endif /* U_HIDE_DEPRECATED_API */ 45 UNUM_ROUND_HALFDOWN = UNUM_ROUND_HALFEVEN + 1, 46 UNUM_ROUND_HALFUP, 47 /** 48 * ROUND_UNNECESSARY reports an error if formatted result is not exact. 49 * @stable ICU 4.8 50 */ 51 UNUM_ROUND_UNNECESSARY, 52 /** 53 * Rounds ties toward the odd number. 54 * @stable ICU 69 55 */ 56 UNUM_ROUND_HALF_ODD, 57 /** 58 * Rounds ties toward +∞. 59 * @stable ICU 69 60 */ 61 UNUM_ROUND_HALF_CEILING, 62 /** 63 * Rounds ties toward -∞. 64 * @stable ICU 69 65 */ 66 UNUM_ROUND_HALF_FLOOR, 67 } UNumberFormatRoundingMode; 68 69 70 /** 71 * An enum declaring the strategy for when and how to display grouping separators (i.e., the 72 * separator, often a comma or period, after every 2-3 powers of ten). The choices are several 73 * pre-built strategies for different use cases that employ locale data whenever possible. Example 74 * outputs for 1234 and 1234567 in en-IN: 75 * 76 *
85 * The default is AUTO, which displays grouping separators unless the locale data says that grouping 86 * is not customary. To force grouping for all numbers greater than 1000 consistently across locales, 87 * use ON_ALIGNED. On the other hand, to display grouping less frequently than the default, use MIN2 88 * or OFF. See the docs of each option for details. 89 * 90 *
91 * Note: This enum specifies the strategy for grouping sizes. To set which character to use as the 92 * grouping separator, use the "symbols" setter. 93 * 94 * @stable ICU 63 95 */ 96 typedef enum UNumberGroupingStrategy { 97 /** 98 * Do not display grouping separators in any locale. 99 * 100 * @stable ICU 61 101 */ 102 UNUM_GROUPING_OFF, 103 104 /** 105 * Display grouping using locale defaults, except do not show grouping on values smaller than 106 * 10000 (such that there is a minimum of two digits before the first separator). 107 * 108 *
109 * Note that locales may restrict grouping separators to be displayed only on 1 million or 110 * greater (for example, ee and hu) or disable grouping altogether (for example, bg currency). 111 * 112 *
113 * Locale data is used to determine whether to separate larger numbers into groups of 2 114 * (customary in South Asia) or groups of 3 (customary in Europe and the Americas). 115 * 116 * @stable ICU 61 117 */ 118 UNUM_GROUPING_MIN2, 119 120 /** 121 * Display grouping using the default strategy for all locales. This is the default behavior. 122 * 123 *
124 * Note that locales may restrict grouping separators to be displayed only on 1 million or 125 * greater (for example, ee and hu) or disable grouping altogether (for example, bg currency). 126 * 127 *
128 * Locale data is used to determine whether to separate larger numbers into groups of 2 129 * (customary in South Asia) or groups of 3 (customary in Europe and the Americas). 130 * 131 * @stable ICU 61 132 */ 133 UNUM_GROUPING_AUTO, 134 135 /** 136 * Always display the grouping separator on values of at least 1000. 137 * 138 *
139 * This option ignores the locale data that restricts or disables grouping, described in MIN2 and 140 * AUTO. This option may be useful to normalize the alignment of numbers, such as in a 141 * spreadsheet. 142 * 143 *
144 * Locale data is used to determine whether to separate larger numbers into groups of 2 145 * (customary in South Asia) or groups of 3 (customary in Europe and the Americas). 146 * 147 * @stable ICU 61 148 */ 149 UNUM_GROUPING_ON_ALIGNED, 150 151 /** 152 * Use the Western defaults: groups of 3 and enabled for all numbers 1000 or greater. Do not use 153 * locale data for determining the grouping strategy. 154 * 155 * @stable ICU 61 156 */ 157 UNUM_GROUPING_THOUSANDS 158 159 #ifndef U_HIDE_INTERNAL_API 160 , 161 /** 162 * One more than the highest UNumberGroupingStrategy value. 163 * 164 * @internal ICU 62: The numeric value may change over time; see ICU ticket #12420. 165 */ 166 UNUM_GROUPING_COUNT 167 #endif /* U_HIDE_INTERNAL_API */ 168 169 } UNumberGroupingStrategy; 170 171 172 #endif /* #if !UCONFIG_NO_FORMATTING */ 173 #endif //__UNUMBEROPTIONS_H__