ICU 69.1  69.1
unumberformatter.h
Go to the documentation of this file.
1 // © 2018 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 
4 #ifndef __UNUMBERFORMATTER_H__
5 #define __UNUMBERFORMATTER_H__
6 
7 #include "unicode/utypes.h"
8 
9 #if !UCONFIG_NO_FORMATTING
10 
11 #include "unicode/parseerr.h"
12 #include "unicode/ufieldpositer.h"
13 #include "unicode/umisc.h"
15 
16 
81 #ifndef U_FORCE_HIDE_DRAFT_API
82 
127 
135 #endif // U_FORCE_HIDE_DRAFT_API
136 
155 typedef enum UNumberUnitWidth {
168 
184 
195 
206 
207 #ifndef U_HIDE_DRAFT_API
208 
218 
229 #endif // U_HIDE_DRAFT_API
230 
239 
240  // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
241  // needed for unconditionalized struct MacroProps
249 
283 
299 
314 
330 
338 
339 #ifndef U_HIDE_INTERNAL_API
340  ,
347 #endif /* U_HIDE_INTERNAL_API */
348 
350 
370 typedef enum UNumberSignDisplay {
381 
389 
396 
412 
422 
430 
439 
440 #ifndef U_HIDE_DRAFT_API
441 
447 
454 #endif // U_HIDE_DRAFT_API
455 
456  // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
457  // needed for unconditionalized struct MacroProps
465 
485 
492 
493  // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
494  // needed for unconditionalized struct MacroProps
502 
503 #ifndef U_FORCE_HIDE_DRAFT_API
504 
519 
527 #endif // U_FORCE_HIDE_DRAFT_API
528 
529 struct UNumberFormatter;
538 
539 struct UFormattedNumber;
548 
549 
570 U_CAPI UNumberFormatter* U_EXPORT2
571 unumf_openForSkeletonAndLocale(const UChar* skeleton, int32_t skeletonLen, const char* locale,
572  UErrorCode* ec);
573 
574 
590 U_CAPI UNumberFormatter* U_EXPORT2
592  const UChar* skeleton, int32_t skeletonLen, const char* locale, UParseError* perror, UErrorCode* ec);
593 
594 
603 U_CAPI UFormattedNumber* U_EXPORT2
605 
606 
622 U_CAPI void U_EXPORT2
623 unumf_formatInt(const UNumberFormatter* uformatter, int64_t value, UFormattedNumber* uresult,
624  UErrorCode* ec);
625 
626 
642 U_CAPI void U_EXPORT2
643 unumf_formatDouble(const UNumberFormatter* uformatter, double value, UFormattedNumber* uresult,
644  UErrorCode* ec);
645 
646 
666 U_CAPI void U_EXPORT2
667 unumf_formatDecimal(const UNumberFormatter* uformatter, const char* value, int32_t valueLen,
668  UFormattedNumber* uresult, UErrorCode* ec);
669 
684 U_CAPI const UFormattedValue* U_EXPORT2
685 unumf_resultAsValue(const UFormattedNumber* uresult, UErrorCode* ec);
686 
687 
707 U_CAPI int32_t U_EXPORT2
708 unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t bufferCapacity,
709  UErrorCode* ec);
710 
711 
745 U_CAPI UBool U_EXPORT2
747 
748 
770 U_CAPI void U_EXPORT2
772  UErrorCode* ec);
773 
774 
775 #ifndef U_HIDE_DRAFT_API
776 
794 U_CAPI int32_t U_EXPORT2
796  const UFormattedNumber* uresult,
797  char* dest,
798  int32_t destCapacity,
799  UErrorCode* ec);
800 #endif // U_HIDE_DRAFT_API
801 
802 
809 U_CAPI void U_EXPORT2
810 unumf_close(UNumberFormatter* uformatter);
811 
812 
819 U_CAPI void U_EXPORT2
821 
822 
823 #if U_SHOW_CPLUSPLUS_API
824 U_NAMESPACE_BEGIN
825 
842 
859 
860 U_NAMESPACE_END
861 #endif // U_SHOW_CPLUSPLUS_API
862 
863 #endif /* #if !UCONFIG_NO_FORMATTING */
864 #endif //__UNUMBERFORMATTER_H__
One more than the highest UNumberSignDisplay value.
C API: Abstract operations for localized strings.
U_CAPI void unumf_formatDouble(const UNumberFormatter *uformatter, double value, UFormattedNumber *uresult, UErrorCode *ec)
Uses a UNumberFormatter to format a double to a UFormattedNumber.
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
Same as AUTO, but hide trailing zeros after the decimal separator if they are all zero...
One more than the highest UNumberGroupingStrategy value.
Use the locale-dependent accounting format on negative numbers, and show the plus sign on positive nu...
struct UNumberFormatter UNumberFormatter
C-compatible version of icu::number::LocalizedNumberFormatter.
C API:misc definitions.
struct UFieldPositionIterator UFieldPositionIterator
C typedef for struct UFieldPositionIterator.
Definition: ufieldpositer.h:46
Use the three-digit ISO XXX code in place of the symbol for displaying currencies.
Use the locale-dependent accounting format on negative numbers, and do not show the sign on positive ...
UNumberDecimalSeparatorDisplay
An enum declaring how to render the decimal separator.
U_CAPI int32_t unumf_resultToDecimalNumber(const UFormattedNumber *uresult, char *dest, int32_t destCapacity, UErrorCode *ec)
Extracts the formatted number as a "numeric string" conforming to the syntax defined in the Decimal A...
U_CAPI void unumf_closeResult(UFormattedNumber *uresult)
Releases the UFormattedNumber created by unumf_openResult().
Do not show the sign on positive or negative numbers.
Same as ACCOUNTING, but do not show the sign on negative zero.
Favor adherence to all rounding constraints by producing lower precision.
Format the number according to the specified unit, but do not display the unit.
UNumberTrailingZeroDisplay
An enum declaring how to render trailing zeros.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:550
struct UFormattedNumber UFormattedNumber
C-compatible version of icu::number::FormattedNumber.
U_CAPI void unumf_close(UNumberFormatter *uformatter)
Releases the UNumberFormatter created by unumf_openForSkeletonAndLocale().
A struct representing a range of text containing a specific field.
Definition: umisc.h:34
UNumberSignDisplay
An enum declaring how to denote positive and negative numbers.
UNumberGroupingStrategy
An enum declaring the strategy for when and how to display grouping separators (i.e., the separator, often a comma or period, after every 2-3 powers of ten).
U_CAPI UNumberFormatter * unumf_openForSkeletonAndLocale(const UChar *skeleton, int32_t skeletonLen, const char *locale, UErrorCode *ec)
Creates a new UNumberFormatter for the given skeleton string and locale.
U_CAPI UBool unumf_resultNextFieldPosition(const UFormattedNumber *uresult, UFieldPosition *ufpos, UErrorCode *ec)
Determines the start and end indices of the next occurrence of the given field in the output string...
Show the decimal separator when there are one or more digits to display after the separator...
Same as AUTO, but do not show the sign on negative zero.
Print the full name of the unit, without any abbreviations.
Do not display grouping separators in any locale.
Print an abbreviated version of the unit name.
U_CAPI void unumf_formatDecimal(const UNumberFormatter *uformatter, const char *value, int32_t valueLen, UFormattedNumber *uresult, UErrorCode *ec)
Uses a UNumberFormatter to format a decimal number to a UFormattedNumber.
"Smart pointer" class; closes a UFormattedNumber via unumf_closeResult().
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:418
Print an abbreviated version of the unit name.
"Smart pointer" class; closes a UNumberFormatter via unumf_close().
Show the minus sign on negative numbers, and do not show the sign on positive numbers.
C API: Parse Error Information.
Always display the grouping separator on values of at least 1000.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
Use the locale-dependent accounting format on negative numbers, and show the plus sign on positive nu...
Use the formal variant of the currency symbol; for example, "NT$" for the New Taiwan dollar in zh-TW...
Show the minus sign on negative numbers and the plus sign on positive numbers, including zero...
C API: UFieldPositionIterator for use with format APIs.
UNumberUnitWidth
An enum declaring how to render units, including currencies.
Display grouping using the default strategy for all locales.
A UParseError struct is used to returned detailed information about parsing errors.
Definition: parseerr.h:58
Basic definitions for ICU, for both C and C++ APIs.
U_CAPI void unumf_resultGetAllFieldPositions(const UFormattedNumber *uresult, UFieldPositionIterator *ufpositer, UErrorCode *ec)
Populates the given iterator with all fields in the formatted output string.
U_CAPI int32_t unumf_resultToString(const UFormattedNumber *uresult, UChar *buffer, int32_t bufferCapacity, UErrorCode *ec)
Extracts the result number string out of a UFormattedNumber to a UChar buffer if possible.
Use the alternate variant of the currency symbol; for example, "TL" for the Turkish lira (TRY)...
U_CAPI const UFormattedValue * unumf_resultAsValue(const UFormattedNumber *uresult, UErrorCode *ec)
Returns a representation of a UFormattedNumber as a UFormattedValue, which can be subsequently passed...
Use the Western defaults: groups of 3 and enabled for all numbers 1000 or greater.
Display grouping using locale defaults, except do not show grouping on values smaller than 10000 (suc...
Always show the decimal separator, even if there are no digits to display after the separator...
Show the minus sign on negative numbers and the plus sign on positive numbers.
struct UFormattedValue UFormattedValue
An abstract formatted value: a string with associated field attributes.
Favor greater precision by relaxing one of the rounding constraints.
One more than the highest UNumberDecimalSeparatorDisplay value.
U_CAPI void unumf_formatInt(const UNumberFormatter *uformatter, int64_t value, UFormattedNumber *uresult, UErrorCode *ec)
Uses a UNumberFormatter to format an integer to a UFormattedNumber.
Display trailing zeros according to the settings for minimum fraction and significant digits...
One more than the highest UNumberUnitWidth value.
U_CAPI UFormattedNumber * unumf_openResult(UErrorCode *ec)
Creates an object to hold the result of a UNumberFormatter operation.
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:269
UNumberRoundingPriority
An enum declaring how to resolve conflicts between maximum fraction digits and maximum significant di...
U_CAPI UNumberFormatter * unumf_openForSkeletonAndLocaleWithError(const UChar *skeleton, int32_t skeletonLen, const char *locale, UParseError *perror, UErrorCode *ec)
Like unumf_openForSkeletonAndLocale, but accepts a UParseError, which will be populated with the loca...