ICU 72.1 72.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"
13#include "unicode/umisc.h"
15
16
126
134
153typedef enum UNumberUnitWidth {
166
182
193
204
215
226
235
236 // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
237 // needed for unconditionalized struct MacroProps
245
279
295
310
326
334
335#ifndef U_HIDE_INTERNAL_API
343#endif /* U_HIDE_INTERNAL_API */
344
346
366typedef enum UNumberSignDisplay {
377
385
392
408
418
426
435
442
449
450 // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
451 // needed for unconditionalized struct MacroProps
459
479
486
487 // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
488 // needed for unconditionalized struct MacroProps
496
512
520
521struct UNumberFormatter;
530
531struct UFormattedNumber;
540
541
562U_CAPI UNumberFormatter* U_EXPORT2
563unumf_openForSkeletonAndLocale(const UChar* skeleton, int32_t skeletonLen, const char* locale,
564 UErrorCode* ec);
565
566
582U_CAPI UNumberFormatter* U_EXPORT2
584 const UChar* skeleton, int32_t skeletonLen, const char* locale, UParseError* perror, UErrorCode* ec);
585
586
595U_CAPI UFormattedNumber* U_EXPORT2
597
598
614U_CAPI void U_EXPORT2
615unumf_formatInt(const UNumberFormatter* uformatter, int64_t value, UFormattedNumber* uresult,
616 UErrorCode* ec);
617
618
634U_CAPI void U_EXPORT2
635unumf_formatDouble(const UNumberFormatter* uformatter, double value, UFormattedNumber* uresult,
636 UErrorCode* ec);
637
638
658U_CAPI void U_EXPORT2
659unumf_formatDecimal(const UNumberFormatter* uformatter, const char* value, int32_t valueLen,
660 UFormattedNumber* uresult, UErrorCode* ec);
661
676U_CAPI const UFormattedValue* U_EXPORT2
678
679
699U_CAPI int32_t U_EXPORT2
700unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t bufferCapacity,
701 UErrorCode* ec);
702
703
737U_CAPI UBool U_EXPORT2
739
740
762U_CAPI void U_EXPORT2
764 UErrorCode* ec);
765
766
785U_CAPI int32_t U_EXPORT2
787 const UFormattedNumber* uresult,
788 char* dest,
789 int32_t destCapacity,
790 UErrorCode* ec);
791
792
799U_CAPI void U_EXPORT2
801
802
809U_CAPI void U_EXPORT2
811
812
813#if U_SHOW_CPLUSPLUS_API
814U_NAMESPACE_BEGIN
815
832
849
850U_NAMESPACE_END
851#endif // U_SHOW_CPLUSPLUS_API
852
853#endif /* #if !UCONFIG_NO_FORMATTING */
854#endif //__UNUMBERFORMATTER_H__
"Smart pointer" class; closes a UFormattedNumber via unumf_closeResult().
"Smart pointer" class; closes a UNumberFormatter via unumf_close().
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:550
C API: Parse Error Information.
A struct representing a range of text containing a specific field.
Definition: umisc.h:34
A UParseError struct is used to returned detailed information about parsing errors.
Definition: parseerr.h:58
C API: UFieldPositionIterator for use with format APIs.
struct UFieldPositionIterator UFieldPositionIterator
C typedef for struct UFieldPositionIterator.
Definition: ufieldpositer.h:46
C API: Abstract operations for localized strings.
struct UFormattedValue UFormattedValue
An abstract formatted value: a string with associated field attributes.
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:269
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:412
C API: Miscellaneous definitions.
UNumberRoundingPriority
An enum declaring how to resolve conflicts between maximum fraction digits and maximum significant di...
@ UNUM_ROUNDING_PRIORITY_RELAXED
Favor greater precision by relaxing one of the rounding constraints.
@ UNUM_ROUNDING_PRIORITY_STRICT
Favor adherence to all rounding constraints by producing lower precision.
UNumberSignDisplay
An enum declaring how to denote positive and negative numbers.
@ UNUM_SIGN_ALWAYS
Show the minus sign on negative numbers and the plus sign on positive numbers, including zero.
@ UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO
Use the locale-dependent accounting format on negative numbers, and show the plus sign on positive nu...
@ UNUM_SIGN_ACCOUNTING_NEGATIVE
Same as ACCOUNTING, but do not show the sign on negative zero.
@ UNUM_SIGN_AUTO
Show the minus sign on negative numbers, and do not show the sign on positive numbers.
@ UNUM_SIGN_ACCOUNTING
Use the locale-dependent accounting format on negative numbers, and do not show the sign on positive ...
@ UNUM_SIGN_NEVER
Do not show the sign on positive or negative numbers.
@ UNUM_SIGN_ACCOUNTING_ALWAYS
Use the locale-dependent accounting format on negative numbers, and show the plus sign on positive nu...
@ UNUM_SIGN_EXCEPT_ZERO
Show the minus sign on negative numbers and the plus sign on positive numbers.
@ UNUM_SIGN_NEGATIVE
Same as AUTO, but do not show the sign on negative zero.
@ UNUM_SIGN_COUNT
One more than the highest UNumberSignDisplay value.
UNumberDecimalSeparatorDisplay
An enum declaring how to render the decimal separator.
@ UNUM_DECIMAL_SEPARATOR_COUNT
One more than the highest UNumberDecimalSeparatorDisplay value.
@ UNUM_DECIMAL_SEPARATOR_AUTO
Show the decimal separator when there are one or more digits to display after the separator,...
@ UNUM_DECIMAL_SEPARATOR_ALWAYS
Always show the decimal separator, even if there are no digits to display after the separator.
UNumberTrailingZeroDisplay
An enum declaring how to render trailing zeros.
@ UNUM_TRAILING_ZERO_AUTO
Display trailing zeros according to the settings for minimum fraction and significant digits.
@ UNUM_TRAILING_ZERO_HIDE_IF_WHOLE
Same as AUTO, but hide trailing zeros after the decimal separator if they are all zero.
U_CAPI void unumf_closeResult(UFormattedNumber *uresult)
Releases the UFormattedNumber created by unumf_openResult().
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 void unumf_formatDouble(const UNumberFormatter *uformatter, double value, UFormattedNumber *uresult, UErrorCode *ec)
Uses a UNumberFormatter to format a double to a UFormattedNumber.
UNumberUnitWidth
An enum declaring how to render units, including currencies.
@ UNUM_UNIT_WIDTH_HIDDEN
Format the number according to the specified unit, but do not display the unit.
@ UNUM_UNIT_WIDTH_FULL_NAME
Print the full name of the unit, without any abbreviations.
@ UNUM_UNIT_WIDTH_FORMAL
Use the formal variant of the currency symbol; for example, "NT$" for the New Taiwan dollar in zh-TW.
@ UNUM_UNIT_WIDTH_NARROW
Print an abbreviated version of the unit name.
@ UNUM_UNIT_WIDTH_VARIANT
Use the alternate variant of the currency symbol; for example, "TL" for the Turkish lira (TRY).
@ UNUM_UNIT_WIDTH_ISO_CODE
Use the three-digit ISO XXX code in place of the symbol for displaying currencies.
@ UNUM_UNIT_WIDTH_SHORT
Print an abbreviated version of the unit name.
@ UNUM_UNIT_WIDTH_COUNT
One more than the highest UNumberUnitWidth value.
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.
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.
struct UNumberFormatter UNumberFormatter
C-compatible version of icu::number::LocalizedNumberFormatter.
U_CAPI void unumf_close(UNumberFormatter *uformatter)
Releases the UNumberFormatter created by unumf_openForSkeletonAndLocale().
struct UFormattedNumber UFormattedNumber
C-compatible version of icu::number::FormattedNumber.
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...
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...
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 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.
U_CAPI UFormattedNumber * unumf_openResult(UErrorCode *ec)
Creates an object to hold the result of a UNumberFormatter operation.
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.
UNumberGroupingStrategy
An enum declaring the strategy for when and how to display grouping separators (i....
@ UNUM_GROUPING_THOUSANDS
Use the Western defaults: groups of 3 and enabled for all numbers 1000 or greater.
@ UNUM_GROUPING_MIN2
Display grouping using locale defaults, except do not show grouping on values smaller than 10000 (suc...
@ UNUM_GROUPING_ON_ALIGNED
Always display the grouping separator on values of at least 1000.
@ UNUM_GROUPING_AUTO
Display grouping using the default strategy for all locales.
@ UNUM_GROUPING_OFF
Do not display grouping separators in any locale.
@ UNUM_GROUPING_COUNT
One more than the highest UNumberGroupingStrategy value.
U_CAPI void unumf_resultGetAllFieldPositions(const UFormattedNumber *uresult, UFieldPositionIterator *ufpositer, UErrorCode *ec)
Populates the given iterator with all fields in the formatted output string.
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415