ICU 4.2.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
unum.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************
3 * Copyright (C) 1997-2009, International Business Machines Corporation and others.
4 * All Rights Reserved.
5 * Modification History:
6 *
7 * Date Name Description
8 * 06/24/99 helena Integrated Alan's NF enhancements and Java2 bug fixes
9 *******************************************************************************
10 */
11 
12 #ifndef _UNUM
13 #define _UNUM
14 
15 #include "unicode/utypes.h"
16 
17 #if !UCONFIG_NO_FORMATTING
18 
19 #include "unicode/uloc.h"
20 #include "unicode/umisc.h"
21 #include "unicode/parseerr.h"
129 typedef void* UNumberFormat;
130 
134 typedef enum UNumberFormatStyle {
175 
180  UNUM_ROUND_CEILING,
181  UNUM_ROUND_FLOOR,
182  UNUM_ROUND_DOWN,
183  UNUM_ROUND_UP,
189  UNUM_ROUND_HALFDOWN,
190  UNUM_ROUND_HALFUP,
197 
202  UNUM_PAD_BEFORE_PREFIX,
203  UNUM_PAD_AFTER_PREFIX,
204  UNUM_PAD_BEFORE_SUFFIX,
205  UNUM_PAD_AFTER_SUFFIX
207 
241  const UChar* pattern,
242  int32_t patternLength,
243  const char* locale,
244  UParseError* parseErr,
245  UErrorCode* status);
246 
247 
254 U_STABLE void U_EXPORT2
256 
266 unum_clone(const UNumberFormat *fmt,
267  UErrorCode *status);
268 
291 unum_format( const UNumberFormat* fmt,
292  int32_t number,
293  UChar* result,
294  int32_t resultLength,
295  UFieldPosition *pos,
296  UErrorCode* status);
297 
321  int64_t number,
322  UChar* result,
323  int32_t resultLength,
324  UFieldPosition *pos,
325  UErrorCode* status);
326 
349 unum_formatDouble( const UNumberFormat* fmt,
350  double number,
351  UChar* result,
352  int32_t resultLength,
353  UFieldPosition *pos, /* 0 if ignore */
354  UErrorCode* status);
355 
379  double number,
380  UChar* currency,
381  UChar* result,
382  int32_t resultLength,
383  UFieldPosition* pos, /* ignored if 0 */
384  UErrorCode* status);
385 
404 unum_parse( const UNumberFormat* fmt,
405  const UChar* text,
406  int32_t textLength,
407  int32_t *parsePos /* 0 = start */,
408  UErrorCode *status);
409 
428 unum_parseInt64(const UNumberFormat* fmt,
429  const UChar* text,
430  int32_t textLength,
431  int32_t *parsePos /* 0 = start */,
432  UErrorCode *status);
433 
451 U_STABLE double U_EXPORT2
452 unum_parseDouble( const UNumberFormat* fmt,
453  const UChar* text,
454  int32_t textLength,
455  int32_t *parsePos /* 0 = start */,
456  UErrorCode *status);
457 
477 U_STABLE double U_EXPORT2
479  const UChar* text,
480  int32_t textLength,
481  int32_t* parsePos, /* 0 = start */
482  UChar* currency,
483  UErrorCode* status);
484 
501 U_STABLE void U_EXPORT2
503  UBool localized,
504  const UChar *pattern,
505  int32_t patternLength,
506  UParseError *parseError,
507  UErrorCode *status
508  );
509 
520 U_STABLE const char* U_EXPORT2
521 unum_getAvailable(int32_t localeIndex);
522 
533 unum_countAvailable(void);
534 
583 
603 
623 U_STABLE void U_EXPORT2
626  int32_t newValue);
627 
628 
643 U_STABLE double U_EXPORT2
646 
661 U_STABLE void U_EXPORT2
664  double newValue);
665 
693 
715  UChar* result,
716  int32_t resultLength,
717  UErrorCode* status);
718 
735 U_STABLE void U_EXPORT2
738  const UChar* newValue,
739  int32_t newValueLength,
740  UErrorCode *status);
741 
759 unum_toPattern( const UNumberFormat* fmt,
760  UBool isPatternLocalized,
761  UChar* result,
762  int32_t resultLength,
763  UErrorCode* status);
764 
765 
770 typedef enum UNumberFormatSymbol {
813 
831 unum_getSymbol(const UNumberFormat *fmt,
832  UNumberFormatSymbol symbol,
833  UChar *buffer,
834  int32_t size,
835  UErrorCode *status);
836 
850 U_STABLE void U_EXPORT2
852  UNumberFormatSymbol symbol,
853  const UChar *value,
854  int32_t length,
855  UErrorCode *status);
856 
857 
867 U_STABLE const char* U_EXPORT2
869  ULocDataLocaleType type,
870  UErrorCode* status);
871 
872 #endif /* #if !UCONFIG_NO_FORMATTING */
873 
874 #endif
Default format.
Definition: unum.h:171
void unum_setDoubleAttribute(UNumberFormat *fmt, UNumberFormatAttribute attr, double newValue)
Set a numeric attribute associated with a UNumberFormat.
void unum_setSymbol(UNumberFormat *fmt, UNumberFormatSymbol symbol, const UChar *value, int32_t length, UErrorCode *status)
Set a symbol associated with a UNumberFormat.
UNumberFormatRoundingMode
The possible number format rounding modes.
Definition: unum.h:179
double unum_getDoubleAttribute(const UNumberFormat *fmt, UNumberFormatAttribute attr)
Get a numeric attribute associated with a UNumberFormat.
The exponential symbol.
Definition: unum.h:794
The monetary grouping separator.
Definition: unum.h:809
Negative prefix.
Definition: unum.h:673
Numbering system rule-based format.
Definition: unum.h:164
const char * unum_getAvailable(int32_t localeIndex)
Get a locale for which decimal formatting patterns are available.
Currency format.
Definition: unum.h:143
Decimal format.
Definition: unum.h:141
void unum_applyPattern(UNumberFormat *format, UBool localized, const UChar *pattern, int32_t patternLength, UParseError *parseError, UErrorCode *status)
Set the pattern used by a UNumberFormat.
Significant digit symbol.
Definition: unum.h:805
Rule-based format defined by pattern.
Definition: unum.h:169
Lenient parse mode used by rule-based formats.
Definition: unum.h:581
double unum_parseDoubleCurrency(const UNumberFormat *fmt, const UChar *text, int32_t textLength, int32_t *parsePos, UChar *currency, UErrorCode *status)
Parse a string into a double and a currency using a UNumberFormat.
C API:misc definitions.
int32_t unum_formatInt64(const UNumberFormat *fmt, int64_t number, UChar *result, int32_t resultLength, UFieldPosition *pos, UErrorCode *status)
Format an int64 using a UNumberFormat.
int32_t unum_format(const UNumberFormat *fmt, int32_t number, UChar *result, int32_t resultLength, UFieldPosition *pos, UErrorCode *status)
Format an integer using a UNumberFormat.
The grouping separator.
Definition: unum.h:774
Integer digits.
Definition: unum.h:548
Fraction digits.
Definition: unum.h:554
UNumberFormatSymbol
Constants for specifying a number format symbol.
Definition: unum.h:770
Half-even rounding, misspelled name.
Definition: unum.h:188
Positive prefix.
Definition: unum.h:669
The ISO currency code.
Definition: unum.h:679
The minus sign.
Definition: unum.h:784
Nan symbol.
Definition: unum.h:802
int64_t unum_parseInt64(const UNumberFormat *fmt, const UChar *text, int32_t textLength, int32_t *parsePos, UErrorCode *status)
Parse a string into an int64 using a UNumberFormat.
Decimal format defined by pattern.
Definition: unum.h:139
Use significant digits.
Definition: unum.h:571
Percent format.
Definition: unum.h:145
Half-even rounding.
Definition: unum.h:195
The position at which padding will take place.
Definition: unum.h:566
Spellout rule-based format.
Definition: unum.h:149
int32_t unum_getTextAttribute(const UNumberFormat *fmt, UNumberFormatTextAttribute tag, UChar *result, int32_t resultLength, UErrorCode *status)
Get a text attribute associated with a UNumberFormat.
UNumberFormatStyle
The possible number format styles.
Definition: unum.h:134
int32_t unum_countAvailable(void)
Determine how many locales have decimal formatting patterns available.
The percent sign.
Definition: unum.h:778
Infinity symbol.
Definition: unum.h:800
void * UNumberFormat
A number formatter.
Definition: unum.h:129
Minimum fraction digits.
Definition: unum.h:552
A struct representing a range of text containing a specific field.
Definition: umisc.h:32
Maximum significant digits.
Definition: unum.h:577
count symbol constants
Definition: unum.h:811
Parse integers only.
Definition: unum.h:538
UNumberFormatTextAttribute
The possible UNumberFormat text attributes.
Definition: unum.h:667
UNumberFormat * unum_clone(const UNumberFormat *fmt, UErrorCode *status)
Open a copy of a UNumberFormat.
Maximum fraction digits.
Definition: unum.h:550
Secondary grouping size.
Definition: unum.h:568
The width to which the output of format() is padded.
Definition: unum.h:564
(Alias for UNUM_PATTERN_DECIMAL)
Definition: unum.h:173
UNumberFormatPadPosition
The possible number format pad positions.
Definition: unum.h:201
Per mill symbol.
Definition: unum.h:796
The pattern separator.
Definition: unum.h:776
#define U_EXPORT2
Definition: platform.h:338
Scientific format.
Definition: unum.h:147
Use grouping separator.
Definition: unum.h:540
int32_t unum_formatDouble(const UNumberFormat *fmt, double number, UChar *result, int32_t resultLength, UFieldPosition *pos, UErrorCode *status)
Format a double using a UNumberFormat.
uint16_t UChar
Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned.
Definition: umachine.h:299
Positive suffix.
Definition: unum.h:671
Multiplier.
Definition: unum.h:556
Minimum integer digits.
Definition: unum.h:546
const char * unum_getLocaleByType(const UNumberFormat *fmt, ULocDataLocaleType type, UErrorCode *status)
Get the locale for this number format object.
Ordinal rule-based format.
Definition: unum.h:154
Escape padding character.
Definition: unum.h:798
C API: Parse Error Information.
void unum_setAttribute(UNumberFormat *fmt, UNumberFormatAttribute attr, int32_t newValue)
Set a numeric attribute associated with a UNumberFormat.
The character used to pad to the format width.
Definition: unum.h:677
UNumberFormat * unum_open(UNumberFormatStyle style, const UChar *pattern, int32_t patternLength, const char *locale, UParseError *parseErr, UErrorCode *status)
Create and return a new UNumberFormat for formatting and parsing numbers.
Rounding Mode.
Definition: unum.h:560
The decimal separator.
Definition: unum.h:772
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:593
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested...
Definition: uloc.h:314
double unum_parseDouble(const UNumberFormat *fmt, const UChar *text, int32_t textLength, int32_t *parsePos, UErrorCode *status)
Parse a string into a double using a UNumberFormat.
int32_t unum_getSymbol(const UNumberFormat *fmt, UNumberFormatSymbol symbol, UChar *buffer, int32_t size, UErrorCode *status)
Get a symbol associated with a UNumberFormat.
Rounding increment.
Definition: unum.h:562
signed long long int64_t
Define 64 bit limits.
Definition: pwin32.h:152
Minimum significant digits.
Definition: unum.h:574
A UParseError struct is used to returned detailed information about parsing errors.
Definition: parseerr.h:56
int32_t unum_formatDoubleCurrency(const UNumberFormat *fmt, double number, UChar *currency, UChar *result, int32_t resultLength, UFieldPosition *pos, UErrorCode *status)
Format a double currency amount using a UNumberFormat.
Basic definitions for ICU, for both C and C++ APIs.
The international currency symbol.
Definition: unum.h:790
int32_t unum_getAttribute(const UNumberFormat *fmt, UNumberFormatAttribute attr)
Get a numeric attribute associated with a UNumberFormat.
The default rule set.
Definition: unum.h:684
The monetary separator.
Definition: unum.h:792
int32_t unum_toPattern(const UNumberFormat *fmt, UBool isPatternLocalized, UChar *result, int32_t resultLength, UErrorCode *status)
Extract the pattern from a UNumberFormat.
The currency symbol.
Definition: unum.h:788
The plus sign.
Definition: unum.h:786
Duration rule-based format.
Definition: unum.h:159
UNumberFormatAttribute
The possible UNumberFormat numeric attributes.
Definition: unum.h:536
void unum_close(UNumberFormat *fmt)
Close a UNumberFormat.
Negative suffix.
Definition: unum.h:675
Grouping size.
Definition: unum.h:558
signed int int32_t
Define 64 bit limits.
Definition: pwin32.h:143
int32_t unum_parse(const UNumberFormat *fmt, const UChar *text, int32_t textLength, int32_t *parsePos, UErrorCode *status)
Parse a string into an integer using a UNumberFormat.
The public rule sets.
Definition: unum.h:691
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:117
int8_t UBool
The ICU boolean type.
Definition: umachine.h:208
Maximum integer digits.
Definition: unum.h:544
Character representing a digit in the pattern.
Definition: unum.h:782
C API: Locale.
Always show decimal point.
Definition: unum.h:542
void unum_setTextAttribute(UNumberFormat *fmt, UNumberFormatTextAttribute tag, const UChar *newValue, int32_t newValueLength, UErrorCode *status)
Set a text attribute associated with a UNumberFormat.