Main Page   Class Hierarchy   Compound List   File List   Header Files   Sources   Compound Members   File Members  

DecimalFormat Class Reference

Concrete class for formatting decimal numbers, allowing a variety of parameters, and localization to Western, Arabic, or Indic numbers. More...

#include <decimfmt.h>

Class diagram for DecimalFormat:

NumberFormat Format

List of all members.


Public Members

enum  ERoundingMode { kRoundCeiling, kRoundFloor, kRoundDown, kRoundUp, kRoundHalfEven, kRoundHalfDown, kRoundHalfUp }
enum  EPadPosition { kPadBeforePrefix, kPadAfterPrefix, kPadBeforeSuffix, kPadAfterSuffix }
 DecimalFormat (UErrorCode& status)
Create a DecimalFormat using the default pattern and symbols for the default locale. More...

 DecimalFormat (const UnicodeString& pattern, UErrorCode& status)
Create a DecimalFormat from the given pattern and the symbols for the default locale. More...

 DecimalFormat ( const UnicodeString& pattern, DecimalFormatSymbols* symbolsToAdopt, UErrorCode& status)
Create a DecimalFormat from the given pattern and symbols. More...

 DecimalFormat ( const UnicodeString& pattern, const DecimalFormatSymbols& symbols, UErrorCode& status)
Create a DecimalFormat from the given pattern and symbols. More...

 DecimalFormat (const DecimalFormat& source)
Copy constructor. More...

DecimalFormat& operator= (const DecimalFormat& rhs)
Assignment operator. More...

virtual ~DecimalFormat ()
Destructor. More...

virtual Formatclone (void) const
Clone this Format object polymorphically. More...

virtual UBool operator== (const Format& other) const
Return true if the given Format objects are semantically equal. More...

virtual UnicodeStringformat (double number, UnicodeString& toAppendTo, FieldPosition& pos) const
Format a double or long number using base-10 representation. More...

virtual UnicodeStringformat (int32_t number, UnicodeString& toAppendTo, FieldPosition& pos) const
virtual UnicodeStringformat (const Formattable& obj, UnicodeString& toAppendTo, FieldPosition& pos, UErrorCode& status) const
Format an object to produce a string. More...

UnicodeStringformat (const Formattable& obj, UnicodeString& result, UErrorCode& status) const
Redeclared NumberFormat method. More...

UnicodeStringformat (double number, UnicodeString& output) const
Redeclared NumberFormat method. More...

UnicodeStringformat (int32_t number, UnicodeString& output) const
Redeclared NumberFormat method. More...

virtual void parse (const UnicodeString& text, Formattable& result, ParsePosition& parsePosition) const
Parse the given string using this object's choices. More...

virtual void parse (const UnicodeString& text, Formattable& result, UErrorCode& error) const
Parse a string as a numeric value, and return a Formattable numeric object. More...

virtual const DecimalFormatSymbolsgetDecimalFormatSymbols (void) const
Returns the decimal format symbols, which is generally not changed by the programmer or user. More...

virtual void adoptDecimalFormatSymbols (DecimalFormatSymbols* symbolsToAdopt)
Sets the decimal format symbols, which is generally not changed by the programmer or user. More...

virtual void setDecimalFormatSymbols (const DecimalFormatSymbols& symbols)
Sets the decimal format symbols, which is generally not changed by the programmer or user. More...

UnicodeStringgetPositivePrefix (UnicodeString& result) const
Get the positive prefix. More...

virtual void setPositivePrefix (const UnicodeString& newValue)
Set the positive prefix. More...

UnicodeStringgetNegativePrefix (UnicodeString& result) const
Get the negative prefix. More...

virtual void setNegativePrefix (const UnicodeString& newValue)
Set the negative prefix. More...

UnicodeStringgetPositiveSuffix (UnicodeString& result) const
Get the positive suffix. More...

virtual void setPositiveSuffix (const UnicodeString& newValue)
Set the positive suffix. More...

UnicodeStringgetNegativeSuffix (UnicodeString& result) const
Get the negative suffix. More...

virtual void setNegativeSuffix (const UnicodeString& newValue)
Set the positive suffix. More...

int32_t getMultiplier (void) const
Get the multiplier for use in percent, permill, etc. More...

virtual void setMultiplier (int32_t newValue)
Set the multiplier for use in percent, permill, etc. More...

virtual double getRoundingIncrement (void)
Get the rounding increment. More...

virtual void setRoundingIncrement (double newValue)
Set the rounding increment. More...

virtual ERoundingMode getRoundingMode (void)
Get the rounding mode. More...

virtual void setRoundingMode (ERoundingMode roundingMode)
Set the rounding mode. More...

virtual int32_t getFormatWidth (void)
Get the width to which the output of format() is padded. More...

virtual void setFormatWidth (int32_t width)
Set the width to which the output of format() is padded. More...

UChar getPadCharacter (void)
Get the first code unit of the string used to pad to the format width. More...

virtual UnicodeString getPadCharacterString ()
Get the grapheme string (a character, possibly with modifier letters) used to pad to the format width. More...

void setPadCharacter (UChar padChar)
Set a one-code unit string used to pad to the format width. More...

virtual void setPadCharacter (UnicodeString padChar)
Set the grapheme string (a character, possibly with modifier letters) used to pad to the format width. More...

virtual EPadPosition getPadPosition (void)
Get the position at which padding will take place. More...

virtual void setPadPosition (EPadPosition padPos)
<font face=helvetica color=red>NEW</font> Set the position at which padding will take place. More...

virtual UBool isScientificNotation (void)
Return whether or not scientific notation is used. More...

virtual void setScientificNotation (UBool useScientific)
Set whether or not scientific notation is used. More...

virtual int8_t getMinimumExponentDigits (void)
Return the minimum exponent digits that will be shown. More...

virtual void setMinimumExponentDigits (int8_t minExpDig)
Set the minimum exponent digits that will be shown. More...

virtual UBool isExponentSignAlwaysShown (void)
Return whether the exponent sign is always shown. More...

virtual void setExponentSignAlwaysShown (UBool expSignAlways)
Set whether the exponent sign is always shown. More...

int32_t getGroupingSize (void) const
Return the grouping size. More...

virtual void setGroupingSize (int32_t newValue)
Set the grouping size. More...

int32_t getSecondaryGroupingSize (void) const
Return the secondary grouping size. More...

virtual void setSecondaryGroupingSize (int32_t newValue)
Set the secondary grouping size. More...

UBool isDecimalSeparatorAlwaysShown (void) const
Allows you to get the behavior of the decimal separator with integers. More...

virtual void setDecimalSeparatorAlwaysShown (UBool newValue)
Allows you to set the behavior of the decimal separator with integers. More...

virtual UnicodeStringtoPattern (UnicodeString& result) const
Synthesizes a pattern string that represents the current state of this Format object. More...

virtual UnicodeStringtoLocalizedPattern (UnicodeString& result) const
Synthesizes a localized pattern string that represents the current state of this Format object. More...

virtual void applyPattern (const UnicodeString& pattern, UErrorCode& status)
Apply the given pattern to this Format object. More...

virtual void applyLocalizedPattern (const UnicodeString& pattern, UErrorCode& status)
Apply the given pattern to this Format object. More...

virtual void setMaximumIntegerDigits (int32_t newValue)
Sets the maximum number of digits allowed in the integer portion of a number. More...

virtual void setMinimumIntegerDigits (int32_t newValue)
Sets the minimum number of digits allowed in the integer portion of a number. More...

virtual void setMaximumFractionDigits (int32_t newValue)
Sets the maximum number of digits allowed in the fraction portion of a number. More...

virtual void setMinimumFractionDigits (int32_t newValue)
Sets the minimum number of digits allowed in the fraction portion of a number. More...

virtual UClassID getDynamicClassID (void) const
Returns a unique class ID POLYMORPHICALLY. More...


Static Public Members

UClassID getStaticClassID (void)
Return the class ID for this class. More...

const char* fgNumberPatterns
The resource tags we use to retrieve decimal format data from locale resource bundles. More...


Static Protected Members

const int32_t kDoubleIntegerDigits
const int32_t kDoubleFractionDigits

Detailed Description

Concrete class for formatting decimal numbers, allowing a variety of parameters, and localization to Western, Arabic, or Indic numbers.

Normally, you get the proper NumberFormat for a specific locale (including the default locale) using the NumberFormat factory methods, rather than constructing a DecimalNumberFormat directly.

Either the prefixes or the suffixes must be different for the parse to distinguish positive from negative. Parsing will be unreliable if the digits, thousands or decimal separators are the same, or if any of them occur in the prefixes or suffixes.

[Special cases:]

NaN is formatted as a single character, typically \uFFFD.

+/-Infinity is formatted as a single character, typically \u221E, plus the positive and negative pre/suffixes.

Note: this class is designed for common users; for very large or small numbers, use a format that can express exponential values.

[Example:]

 .    // normally we would have a GUI with a menu for this
 .    int32_t locCount;
 .    const Locale* locales = NumberFormat::getAvailableLocales(locCount);
 .    if (locCount > 12) locCount = 12;  //limit output
 .
 .    double myNumber = -1234.56;
 .    UErrorCode success = U_ZERO_ERROR;
 .    NumberFormat* form; //= NumberFormat::createInstance(success);
 .
 .    // just for fun, we print out a number with the locale number, currency
 .    // and percent format for each locale we can.
 .    UnicodeString countryName;
 .    UnicodeString displayName;
 .    UnicodeString str;
 .    UnicodeString pattern;
 .    Formattable fmtable;
 .    for (int32_t j = 0; j < 3; ++j) {
 .        cout << endl << "FORMAT " << j << endl;
 .        for (int32_t i = 0; i < locCount; ++i) {
 .            if (locales[i].getCountry(countryName).size() == 0) {
 .                // skip language-only
 .                continue;
 .            }
 .            switch (j) {
 .            default:
 .                form = NumberFormat::createInstance(locales[i], success ); break;
 .            case 1:
 .                form = NumberFormat::createCurrencyInstance(locales[i], success ); break;
 .            case 0:
 .                form = NumberFormat::createPercentInstance(locales[i], success ); break;
 .            }
 .            if (form) {
 .                str.remove();
 .                pattern = ((DecimalFormat*)form)->toPattern(pattern);
 .                cout << locales[i].getDisplayName(displayName) << ": " << pattern;
 .                cout << "  ->  " << form->format(myNumber,str) << endl;
 .                form->parse(form->format(myNumber,str), fmtable, success);
 .                //cout << "   parsed: " << fmtable << endl;
 .                delete form;  
 .            }
 .        }
 .    }
 
[The following shows the structure of the pattern.]
 .    pattern    := subpattern{;subpattern}
 .    subpattern := {prefix}integer{.fraction}{suffix}
 .    
 .    prefix     := '\\u0000'..'\\uFFFD' - specialCharacters
 .    suffix     := '\\u0000'..'\\uFFFD' - specialCharacters
 .    integer    := '#'* '0'* '0'
 .    fraction   := '0'* '#'*
    
  Notation:
 .    X*       0 or more instances of X
 .    (X | Y)  either X or Y.
 .    X..Y     any character from X up to Y, inclusive.
 .    S - T    characters in S, except those in T
 
The first subpattern is for positive numbers. The second (optional) subpattern is used for negative numbers. (In both cases, ',' can occur inside the integer portion--it is just too messy to indicate in BNF.) For the second subpattern, only the PREFIX and SUFFIX are noted; other attributes are taken only from the first subpattern.

Here are the special characters used in the parts of the subpattern, with notes on their usage.

 .    Symbol   Meaning
 .      0      a digit, showing up a zero if it is zero
 .      #      a digit, supressed if zero
 .      .      placeholder for decimal separator
 .      ,      placeholder for grouping separator.
 .      E      separates mantissa and exponent for exponential formats.
 .      ;      separates formats.
 .      -      default negative prefix.
 .      %      multiply by 100 and show as percentage
 .      \u2030 multiply by 1000 and show as per mille
 .      \u00A4 currency sign; replaced by currency symbol; if
 .             doubled, replaced by international currency symbol.
 .             If present in a pattern, the monetary decimal separator
 .             is used instead of the decimal separator.
 .      X      any other characters can be used in the prefix or suffix
 .      '      used to quote special characters in a prefix or suffix.
 
[Notes]

If there is no explicit negative subpattern, - is prefixed to the positive form. That is, "0.00" alone is equivalent to "0.00;-0.00".

Illegal formats, such as "#.#.#" in the same format, will cause a failing UErrorCode to be returned.

The grouping separator is commonly used for thousands, but in some countries for ten-thousands. The interval is a constant number of digits between the grouping characters, such as 100,000,000 or 1,0000,0000. If you supply a pattern with multiple grouping characters, the interval between the last one and the end of the integer determines the primary grouping size, and the interval between the last two determines the secondary grouping size (see below); all others are ignored. So "#,##,###,####" == "###,###,####" == "##,#,###,####".

Some locales have two different grouping intervals: One used for the least significant integer digits (the primary grouping size), and one used for all others (the secondary grouping size). For example, if the primary grouping interval is 3, and the secondary is 2, then this corresponds to the pattern "#,##,##0", and the number 123456789 is formatted as "12,34,56,789".

This class only handles localized digits where the 10 digits are contiguous in Unicode, from 0 to 9. Other digits sets (such as superscripts) would need a different subclass.

Definition at line 172 of file decimfmt.h.


Member Enumeration Documentation

enum DecimalFormat::ERoundingMode

Enumeration values:
kRoundCeiling  
kRoundFloor  
kRoundDown  
kRoundUp  
kRoundHalfEven  
kRoundHalfDown  
kRoundHalfUp  

Definition at line 174 of file decimfmt.h.

enum DecimalFormat::EPadPosition

Enumeration values:
kPadBeforePrefix  
kPadAfterPrefix  
kPadBeforeSuffix  
kPadAfterSuffix  

Definition at line 185 of file decimfmt.h.


Member Function Documentation

DecimalFormat::DecimalFormat (UErrorCode & status)

Create a DecimalFormat using the default pattern and symbols for the default locale.

This is a convenient way to obtain a DecimalFormat when internationalization is not the main concern.

To obtain standard formats for a given locale, use the factory methods on NumberFormat such as getNumberInstance. These factories will return the most appropriate sub-class of NumberFormat for a given locale.

Parameters:
status   Output param set to success/failure code. If the pattern is invalid this will be set to a failure code.
Stable:

DecimalFormat::DecimalFormat (const UnicodeString & pattern, UErrorCode & status)

Create a DecimalFormat from the given pattern and the symbols for the default locale.

This is a convenient way to obtain a DecimalFormat when internationalization is not the main concern.

To obtain standard formats for a given locale, use the factory methods on NumberFormat such as getNumberInstance. These factories will return the most appropriate sub-class of NumberFormat for a given locale.

Parameters:
pattern   A non-localized pattern string.
status   Output param set to success/failure code. If the pattern is invalid this will be set to a failure code.
Stable:

DecimalFormat::DecimalFormat (const UnicodeString & pattern, DecimalFormatSymbols * symbolsToAdopt, UErrorCode & status)

Create a DecimalFormat from the given pattern and symbols.

Use this constructor when you need to completely customize the behavior of the format.

To obtain standard formats for a given locale, use the factory methods on NumberFormat such as getInstance or getCurrencyInstance. If you need only minor adjustments to a standard format, you can modify the format returned by a NumberFormat factory method.

Parameters:
pattern   a non-localized pattern string
symbolsToAdopt   the set of symbols to be used. The caller should not delete this object after making this call.
status   Output param set to success/failure code. If the pattern is invalid this will be set to a failure code.
Stable:

DecimalFormat::DecimalFormat (const UnicodeString & pattern, const DecimalFormatSymbols & symbols, UErrorCode & status)

Create a DecimalFormat from the given pattern and symbols.

Use this constructor when you need to completely customize the behavior of the format.

To obtain standard formats for a given locale, use the factory methods on NumberFormat such as getInstance or getCurrencyInstance. If you need only minor adjustments to a standard format, you can modify the format returned by a NumberFormat factory method.

Parameters:
pattern   a non-localized pattern string
symbols   the set of symbols to be used
status   Output param set to success/failure code. If the pattern is invalid this will be set to a failure code.
Stable:

DecimalFormat::DecimalFormat (const DecimalFormat & source)

Copy constructor.

Stable:

DecimalFormat & DecimalFormat::operator= (const DecimalFormat & rhs)

Assignment operator.

Stable:

virtual DecimalFormat::~DecimalFormat () [virtual]

Destructor.

Stable:

virtual Format * DecimalFormat::clone (void) const [virtual]

Clone this Format object polymorphically.

The caller owns the result and should delete it when done.

Stable:

Reimplemented from Format.

virtual UBool DecimalFormat::operator== (const Format & other) const [virtual]

Return true if the given Format objects are semantically equal.

Objects of different subclasses are considered unequal.

Stable:

Reimplemented from Format.

virtual UnicodeString & DecimalFormat::format (double number, UnicodeString & toAppendTo, FieldPosition & pos) const [virtual]

Format a double or long number using base-10 representation.

Parameters:
number   The value to be formatted.
toAppendTo   The string to append the formatted string to. This is an output parameter.
pos   On input: an alignment field, if desired. On output: the offsets of the alignment field.
Returns:
A reference to 'toAppendTo'.
Stable:

Reimplemented from NumberFormat.

virtual UnicodeString& DecimalFormat::format (int32_t number, UnicodeString & toAppendTo, FieldPosition & pos) const [virtual]

Reimplemented from NumberFormat.

virtual UnicodeString& DecimalFormat::format (const Formattable & obj, UnicodeString & toAppendTo, FieldPosition & pos, UErrorCode & status) const [virtual]

Format an object to produce a string.

This method handles Formattable objects with numeric types. If the Formattable object type is not a numeric type, then it returns a failing UErrorCode.

Parameters:
obj   The object to format.
toAppendTo   Where the text is to be appended.
pos   On input: an alignment field, if desired. On output: the offsets of the alignment field.
status   Output param filled with success/failure status.
Returns:
The value passed in as toAppendTo (this allows chaining, as with UnicodeString::append())
Stable:

Reimplemented from Format.

UnicodeString & DecimalFormat::format (const Formattable & obj, UnicodeString & result, UErrorCode & status) const [inline]

Redeclared NumberFormat method.

Stable:

Reimplemented from NumberFormat.

Definition at line 1088 of file decimfmt.h.

UnicodeString & DecimalFormat::format (double number, UnicodeString & output) const [inline]

Redeclared NumberFormat method.

Stable:

Reimplemented from NumberFormat.

Definition at line 1097 of file decimfmt.h.

UnicodeString & DecimalFormat::format (int32_t number, UnicodeString & output) const [inline]

Redeclared NumberFormat method.

Stable:

Reimplemented from NumberFormat.

Definition at line 1103 of file decimfmt.h.

virtual void DecimalFormat::parse (const UnicodeString & text, Formattable & result, ParsePosition & parsePosition) const [virtual]

Parse the given string using this object's choices.

The method does string comparisons to try to find an optimal match. If no object can be parsed, index is unchanged, and NULL is returned.

Parameters:
text   The text to be parsed.
result   Formattable to be set to the parse result. If parse fails, return contents are undefined.
parsePosition   The position to start parsing at on input. On output, moved to after the last successfully parse character. On parse failure, does not change.
Stable:

Reimplemented from NumberFormat.

virtual void DecimalFormat::parse (const UnicodeString & text, Formattable & result, UErrorCode & error) const [virtual]

Parse a string as a numeric value, and return a Formattable numeric object.

This method parses integers only if IntegerOnly is set.

Parameters:
text   The text to be parsed.
result   Formattable to be set to the parse result. If parse fails, return contents are undefined.
status   Success or failure output parameter.
Returns:
A Formattable object of numeric type. The caller owns this an must delete it. NULL on failure.
See also:
NumberFormat::isParseIntegerOnly()
Stable:

Reimplemented from NumberFormat.

virtual const DecimalFormatSymbols * DecimalFormat::getDecimalFormatSymbols (void) const [virtual]

Returns the decimal format symbols, which is generally not changed by the programmer or user.

Returns:
desired DecimalFormatSymbols
See also:
DecimalFormatSymbols
Stable:

virtual void DecimalFormat::adoptDecimalFormatSymbols (DecimalFormatSymbols * symbolsToAdopt) [virtual]

Sets the decimal format symbols, which is generally not changed by the programmer or user.

Parameters:
symbolsToAdopt   DecimalFormatSymbols to be adopted.
Stable:

virtual void DecimalFormat::setDecimalFormatSymbols (const DecimalFormatSymbols & symbols) [virtual]

Sets the decimal format symbols, which is generally not changed by the programmer or user.

Parameters:
symbols   DecimalFormatSymbols.
Stable:

UnicodeString & DecimalFormat::getPositivePrefix (UnicodeString & result) const

Get the positive prefix.

Examples: +123, $123, sFr123

Stable:

virtual void DecimalFormat::setPositivePrefix (const UnicodeString & newValue) [virtual]

Set the positive prefix.

Examples: +123, $123, sFr123

Stable:

UnicodeString & DecimalFormat::getNegativePrefix (UnicodeString & result) const

Get the negative prefix.

Examples: -123, ($123) (with negative suffix), sFr-123

Stable:

virtual void DecimalFormat::setNegativePrefix (const UnicodeString & newValue) [virtual]

Set the negative prefix.

Examples: -123, ($123) (with negative suffix), sFr-123

Stable:

UnicodeString & DecimalFormat::getPositiveSuffix (UnicodeString & result) const

Get the positive suffix.

Example: 123%

Stable:

virtual void DecimalFormat::setPositiveSuffix (const UnicodeString & newValue) [virtual]

Set the positive suffix.

Example: 123%

Stable:

UnicodeString & DecimalFormat::getNegativeSuffix (UnicodeString & result) const

Get the negative suffix.

Examples: -123%, ($123) (with positive suffixes)

Stable:

virtual void DecimalFormat::setNegativeSuffix (const UnicodeString & newValue) [virtual]

Set the positive suffix.

Examples: 123%

Stable:

int32_t DecimalFormat::getMultiplier (void) const

Get the multiplier for use in percent, permill, etc.

For a percentage, set the suffixes to have "%" and the multiplier to be 100. (For Arabic, use arabic percent symbol). For a permill, set the suffixes to have "\u2031" and the multiplier to be 1000.

Examples: with 100, 1.23 -> "123", and "123" -> 1.23

Stable:

virtual void DecimalFormat::setMultiplier (int32_t newValue) [virtual]

Set the multiplier for use in percent, permill, etc.

For a percentage, set the suffixes to have "%" and the multiplier to be 100. (For Arabic, use arabic percent symbol). For a permill, set the suffixes to have "\u2031" and the multiplier to be 1000.

Examples: with 100, 1.23 -> "123", and "123" -> 1.23

Stable:

virtual double DecimalFormat::getRoundingIncrement (void) [virtual]

Get the rounding increment.

Returns:
A positive rounding increment, or 0.0 if rounding is not in effect.
See also:
setRoundingIncrement() , getRoundingMode() , setRoundingMode()
Stable:

virtual void DecimalFormat::setRoundingIncrement (double newValue) [virtual]

Set the rounding increment.

This method also controls whether rounding is enabled.

Parameters:
newValue   A positive rounding increment, or 0.0 to disable rounding. Negative increments are equivalent to 0.0.
See also:
getRoundingIncrement() , getRoundingMode() , setRoundingMode()
Stable:

virtual ERoundingMode DecimalFormat::getRoundingMode (void) [virtual]

Get the rounding mode.

Returns:
A rounding mode
See also:
setRoundingIncrement() , getRoundingIncrement() , setRoundingMode()
Stable:

virtual void DecimalFormat::setRoundingMode (ERoundingMode roundingMode) [virtual]

Set the rounding mode.

This has no effect unless the rounding increment is greater than zero.

Parameters:
roundingMode   A rounding mode
See also:
setRoundingIncrement() , getRoundingIncrement() , getRoundingMode()
Stable:

virtual int32_t DecimalFormat::getFormatWidth (void) [virtual]

Get the width to which the output of format() is padded.

Returns:
the format width, or zero if no padding is in effect
See also:
setFormatWidth() , getPadCharacter() , setPadCharacter() , getPadPosition() , setPadPosition()
Stable:

virtual void DecimalFormat::setFormatWidth (int32_t width) [virtual]

Set the width to which the output of format() is padded.

This method also controls whether padding is enabled.

Parameters:
width   the width to which to pad the result of format(), or zero to disable padding. A negative width is equivalent to 0.
See also:
getFormatWidth() , getPadCharacter() , setPadCharacter() , getPadPosition() , setPadPosition()
Stable:

UChar DecimalFormat::getPadCharacter (void) [inline]

Get the first code unit of the string used to pad to the format width.

The default is ' '.

Returns:
the first code unit of the pad string
See also:
setFormatWidth() , getFormatWidth() , setPadCharacter() , getPadPosition() , setPadPosition()
Deprecated:
remove after 2000-dec-31

Definition at line 1109 of file decimfmt.h.

virtual UnicodeString DecimalFormat::getPadCharacterString () [virtual]

Get the grapheme string (a character, possibly with modifier letters) used to pad to the format width.

The default is " ". Note: The current implementation only stores the first code unit of the pad string.

Returns:
the pad grapheme string
See also:
setFormatWidth() , getFormatWidth() , setPadCharacter() , getPadPosition() , setPadPosition()
Draft:

void DecimalFormat::setPadCharacter (UChar padChar) [inline]

Set a one-code unit string used to pad to the format width.

This has no effect unless padding is enabled.

Parameters:
padChar   the pad character that is used to construct the pad string
See also:
setFormatWidth() , getFormatWidth() , getPadCharacter() , getPadPosition() , setPadPosition()
Deprecated:
remove after 2000-dec-31

Definition at line 1114 of file decimfmt.h.

virtual void DecimalFormat::setPadCharacter (UnicodeString padChar) [virtual]

Set the grapheme string (a character, possibly with modifier letters) used to pad to the format width.

This has no effect unless padding is enabled. Note: The current implementation only stores the first code unit of the pad string.

Parameters:
padChar   the pad grapheme
See also:
setFormatWidth() , getFormatWidth() , getPadCharacter() , getPadPosition() , setPadPosition()
Draft:

virtual EPadPosition DecimalFormat::getPadPosition (void) [virtual]

Get the position at which padding will take place.

This is the location at which padding will be inserted if the result of format() is shorter than the format width.

Returns:
the pad position, one of kPadBeforePrefix, kPadAfterPrefix, kPadBeforeSuffix, or kPadAfterSuffix.
See also:
setFormatWidth() , getFormatWidth() , setPadCharacter() , getPadCharacter() , setPadPosition() , kPadBeforePrefix , kPadAfterPrefix , kPadBeforeSuffix , kPadAfterSuffix
Stable:

virtual void DecimalFormat::setPadPosition (EPadPosition padPos) [virtual]

<font face=helvetica color=red>NEW</font> Set the position at which padding will take place.

This is the location at which padding will be inserted if the result of format() is shorter than the format width. This has no effect unless padding is enabled.

Parameters:
padPos   the pad position, one of kPadBeforePrefix, kPadAfterPrefix, kPadBeforeSuffix, or kPadAfterSuffix.
See also:
setFormatWidth() , getFormatWidth() , setPadCharacter() , getPadCharacter() , getPadPosition() , kPadBeforePrefix , kPadAfterPrefix , kPadBeforeSuffix , kPadAfterSuffix
Stable:

virtual UBool DecimalFormat::isScientificNotation (void) [virtual]

Return whether or not scientific notation is used.

Returns:
TRUE if this object formats and parses scientific notation
See also:
setScientificNotation() , getMinimumExponentDigits() , setMinimumExponentDigits() , isExponentSignAlwaysShown() , setExponentSignAlwaysShown()
Stable:

virtual void DecimalFormat::setScientificNotation (UBool useScientific) [virtual]

Set whether or not scientific notation is used.

Parameters:
useScientific   TRUE if this object formats and parses scientific notation
See also:
isScientificNotation() , getMinimumExponentDigits() , setMinimumExponentDigits() , isExponentSignAlwaysShown() , setExponentSignAlwaysShown()
Stable:

virtual int8_t DecimalFormat::getMinimumExponentDigits (void) [virtual]

Return the minimum exponent digits that will be shown.

Returns:
the minimum exponent digits that will be shown
See also:
setScientificNotation() , isScientificNotation() , setMinimumExponentDigits() , isExponentSignAlwaysShown() , setExponentSignAlwaysShown()
Stable:

virtual void DecimalFormat::setMinimumExponentDigits (int8_t minExpDig) [virtual]

Set the minimum exponent digits that will be shown.

This has no effect unless scientific notation is in use.

Parameters:
minExpDig   a value >= 1 indicating the fewest exponent digits that will be shown. Values less than 1 will be treated as 1.
See also:
setScientificNotation() , isScientificNotation() , getMinimumExponentDigits() , isExponentSignAlwaysShown() , setExponentSignAlwaysShown()
Stable:

virtual UBool DecimalFormat::isExponentSignAlwaysShown (void) [virtual]

Return whether the exponent sign is always shown.

Returns:
TRUE if the exponent is always prefixed with either the localized minus sign or the localized plus sign, false if only negative exponents are prefixed with the localized minus sign.
See also:
setScientificNotation() , isScientificNotation() , setMinimumExponentDigits() , getMinimumExponentDigits() , setExponentSignAlwaysShown()
Stable:

virtual void DecimalFormat::setExponentSignAlwaysShown (UBool expSignAlways) [virtual]

Set whether the exponent sign is always shown.

This has no effect unless scientific notation is in use.

Parameters:
expSignAlways   TRUE if the exponent is always prefixed with either the localized minus sign or the localized plus sign, false if only negative exponents are prefixed with the localized minus sign.
See also:
setScientificNotation() , isScientificNotation() , setMinimumExponentDigits() , getMinimumExponentDigits() , isExponentSignAlwaysShown()
Stable:

int32_t DecimalFormat::getGroupingSize (void) const

Return the grouping size.

Grouping size is the number of digits between grouping separators in the integer portion of a number. For example, in the number "123,456.78", the grouping size is 3.

See also:
setGroupingSize() , NumberFormat::isGroupingUsed() , DecimalFormatSymbols::getGroupingSeparator()
Stable:

virtual void DecimalFormat::setGroupingSize (int32_t newValue) [virtual]

Set the grouping size.

Grouping size is the number of digits between grouping separators in the integer portion of a number. For example, in the number "123,456.78", the grouping size is 3.

See also:
getGroupingSize() , NumberFormat::setGroupingUsed() , DecimalFormatSymbols::setGroupingSeparator()
Stable:

int32_t DecimalFormat::getSecondaryGroupingSize (void) const

Return the secondary grouping size.

In some locales one grouping interval is used for the least significant integer digits (the primary grouping size), and another is used for all others (the secondary grouping size). A formatter supporting a secondary grouping size will return a positive integer unequal to the primary grouping size returned by getGroupingSize(). For example, if the primary grouping size is 4, and the secondary grouping size is 2, then the number 123456789 formats as "1,23,45,6789", and the pattern appears as "#,##,###0".

Returns:
the secondary grouping size, or a value less than one if there is none
See also:
setSecondaryGroupingSize() , NumberFormat::isGroupingUsed() , DecimalFormatSymbols::getGroupingSeparator()

virtual void DecimalFormat::setSecondaryGroupingSize (int32_t newValue) [virtual]

Set the secondary grouping size.

If set to a value less than 1, then secondary grouping is turned off, and the primary grouping size is used for all intervals, not just the least significant.

See also:
getSecondaryGroupingSize() , NumberFormat::setGroupingUsed() , DecimalFormatSymbols::setGroupingSeparator()

UBool DecimalFormat::isDecimalSeparatorAlwaysShown (void) const

Allows you to get the behavior of the decimal separator with integers.

(The decimal separator will always appear with decimals.)

Example: Decimal ON: 12345 -> 12345.; OFF: 12345 -> 12345

Stable:

virtual void DecimalFormat::setDecimalSeparatorAlwaysShown (UBool newValue) [virtual]

Allows you to set the behavior of the decimal separator with integers.

(The decimal separator will always appear with decimals.)

Example: Decimal ON: 12345 -> 12345.; OFF: 12345 -> 12345

Stable:

virtual UnicodeString & DecimalFormat::toPattern (UnicodeString & result) const [virtual]

Synthesizes a pattern string that represents the current state of this Format object.

See also:
applyPattern()
Stable:

virtual UnicodeString & DecimalFormat::toLocalizedPattern (UnicodeString & result) const [virtual]

Synthesizes a localized pattern string that represents the current state of this Format object.

See also:
applyPattern()
Stable:

virtual void DecimalFormat::applyPattern (const UnicodeString & pattern, UErrorCode & status) [virtual]

Apply the given pattern to this Format object.

A pattern is a short-hand specification for the various formatting properties. These properties can also be changed individually through the various setter methods.

There is no limit to integer digits are set by this routine, since that is the typical end-user desire; use setMaximumInteger if you want to set a real value. For negative numbers, use a second pattern, separated by a semicolon

 .      Example "#,#00.0#" -> 1,234.56
 
This means a minimum of 2 integer digits, 1 fraction digit, and a maximum of 2 fraction digits.
 .      Example: "#,#00.0#;(#,#00.0#)" for negatives in parantheses.
 
In negative patterns, the minimum and maximum counts are ignored; these are presumed to be set in the positive pattern.

Parameters:
pattern   The pattern to be applied.
status   Output param set to success/failure code on exit. If the pattern is invalid, this will be set to a failure result.
Stable:

virtual void DecimalFormat::applyLocalizedPattern (const UnicodeString & pattern, UErrorCode & status) [virtual]

Apply the given pattern to this Format object.

The pattern is assumed to be in a localized notation. A pattern is a short-hand specification for the various formatting properties. These properties can also be changed individually through the various setter methods.

There is no limit to integer digits are set by this routine, since that is the typical end-user desire; use setMaximumInteger if you want to set a real value. For negative numbers, use a second pattern, separated by a semicolon

 .      Example "#,#00.0#" -> 1,234.56
 
This means a minimum of 2 integer digits, 1 fraction digit, and a maximum of 2 fraction digits.

Example: "#,#00.0#;(#,#00.0#)" for negatives in parantheses.

In negative patterns, the minimum and maximum counts are ignored; these are presumed to be set in the positive pattern.

Parameters:
pattern   The localized pattern to be applied.
status   Output param set to success/failure code on exit. If the pattern is invalid, this will be set to a failure result.
Stable:

virtual void DecimalFormat::setMaximumIntegerDigits (int32_t newValue) [virtual]

Sets the maximum number of digits allowed in the integer portion of a number.

This override limits the integer digit count to 309.

See also:
NumberFormat::setMaximumIntegerDigits()
Stable:

Reimplemented from NumberFormat.

virtual void DecimalFormat::setMinimumIntegerDigits (int32_t newValue) [virtual]

Sets the minimum number of digits allowed in the integer portion of a number.

This override limits the integer digit count to 309.

See also:
NumberFormat::setMinimumIntegerDigits()
Stable:

Reimplemented from NumberFormat.

virtual void DecimalFormat::setMaximumFractionDigits (int32_t newValue) [virtual]

Sets the maximum number of digits allowed in the fraction portion of a number.

This override limits the fraction digit count to 340.

See also:
NumberFormat::setMaximumFractionDigits()
Stable:

Reimplemented from NumberFormat.

virtual void DecimalFormat::setMinimumFractionDigits (int32_t newValue) [virtual]

Sets the minimum number of digits allowed in the fraction portion of a number.

This override limits the fraction digit count to 340.

See also:
NumberFormat::setMinimumFractionDigits()
Stable:

Reimplemented from NumberFormat.

virtual UClassID DecimalFormat::getDynamicClassID (void) const [inline, virtual]

Returns a unique class ID POLYMORPHICALLY.

Pure virtual override. This method is to implement a simple version of RTTI, since not all C++ compilers support genuine RTTI. Polymorphic operator==() and clone() methods call this method.

Returns:
The class ID for this object. All objects of a given class have the same class ID. Objects of other classes have different class IDs.
Stable:

Reimplemented from Format.

Definition at line 939 of file decimfmt.h.

UClassID DecimalFormat::getStaticClassID (void) [inline, static]

Return the class ID for this class.

This is useful only for comparing to a return value from getDynamicClassID(). For example:

 .      Base* polymorphic_pointer = createPolymorphicObject();
 .      if (polymorphic_pointer->getDynamicClassID() ==
 .          Derived::getStaticClassID()) ...
 
Returns:
The class ID for all objects of this class.
Stable:

Reimplemented from NumberFormat.

Definition at line 926 of file decimfmt.h.


Member Data Documentation

const char* DecimalFormat::fgNumberPatterns [static]

The resource tags we use to retrieve decimal format data from locale resource bundles.

Stable:

Definition at line 911 of file decimfmt.h.

const int32_t DecimalFormat::kDoubleIntegerDigits [static, protected]

Definition at line 1083 of file decimfmt.h.

const int32_t DecimalFormat::kDoubleFractionDigits [static, protected]

Definition at line 1084 of file decimfmt.h.


The documentation for this class was generated from the following file:
Generated at Wed Aug 16 16:05:44 2000 for ICU1.6 by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999