ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
spark.formatters 

NumberFormatter  - AS3 Flex

Packagespark.formatters
Classpublic class NumberFormatter
InheritanceNumberFormatter Inheritance NumberFormatterBase Inheritance GlobalizationBase Inheritance AdvancedStyleClient Inheritance EventDispatcher Inheritance Object
Implements IFormatter

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

The NumberFormatter class provides locale-sensitive formatting and parsing of numeric values. It can format int, uint, and Number objects.

This class is a wrapper class around the flash.globalization.NumberFormatter class. Therefore, the locale-specific formatting is provided by the flash.globalization.NumberFormatter. However, this NumberFormatter class can be used in MXML declarations, uses the locale style for the requested Locale ID name, and has methods and properties that are bindable.

The flash.globalization.NumberFormatter class use the underlying operating system for the formatting functionality and to supply the locale-specific data. On some operating systems, the flash.globalization classes are unsupported, on these systems this wrapper class provides fallback functionality.

MXML SyntaxexpandedHide MXML Syntax

The <s:NumberFormatter> tag inherits all of the tag attributes of its superclass and adds the following tag attributes:

  <s:NumberFormatter 
    Properties
    negativeNumberFormat="locale and OS dependent"
  />
  

View the examples

More examples

Learn more

Related API Elements



Public Properties
 PropertyDefined By
  actualLocaleIDName : String
[override] [read-only] The name of the actual locale ID used by this class object.
NumberFormatter
 InheritedclassName : String
[read-only] The name of the component class.
AdvancedStyleClient
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 InheriteddecimalSeparator : String
The decimal separator character used for formatting or parsing numbers that have a decimal part.
NumberFormatterBase
 InheriteddigitsType : uint
Defines the set of digit characters to be used when formatting numbers.
NumberFormatterBase
 InheritederrorText : String
Replacement string returned by the format() method when an error occurs.
NumberFormatterBase
 InheritedfractionalDigits : int
The maximum number of digits that can appear after the decimal separator.
NumberFormatterBase
 InheritedgroupingPattern : String
Describes the placement of grouping separators within the formatted number string.
NumberFormatterBase
 InheritedgroupingSeparator : String
The character or string used for the grouping separator.
NumberFormatterBase
 Inheritedid : String
The identity of the component.
AdvancedStyleClient
 InheritedinheritingStyles : Object
An object containing the inheritable styles for this non-visual style client instance.
AdvancedStyleClient
 InheritedlastOperationStatus : String
[override] [read-only] The status of the most recent operation that this class object performed.
NumberFormatterBase
 InheritedleadingZero : Boolean
Specifies whether a leading zero is included in a formatted number when there are no integer digits to the left of the decimal separator.
NumberFormatterBase
 InheritedmoduleFactory : IFlexModuleFactory
A module factory is used as context for finding the style manager that controls the styles for this non-visual style client instance.
AdvancedStyleClient
  negativeNumberFormat : uint
A numeric value that indicates a formatting pattern for negative numbers.
NumberFormatter
 InheritednegativeSymbol : String
The negative symbol to be used when formatting negative values.
NumberFormatterBase
 InheritednonInheritingStyles : Object
The beginning of this component's chain of non-inheriting styles.
AdvancedStyleClient
 InheritedstyleDeclaration : CSSStyleDeclaration
The style declaration that holds the inline styles declared by this object.
AdvancedStyleClient
 InheritedstyleManager : IStyleManager2
[read-only] Returns the StyleManager instance used by this component.
AdvancedStyleClient
 InheritedstyleName : Object
The source of this object's style values.
AdvancedStyleClient
 InheritedstyleParent : IAdvancedStyleClient
A component's parent is used to evaluate descendant selectors.
AdvancedStyleClient
 InheritedtrailingZeros : Boolean
Specifies whether trailing zeros are included in a formatted number.
NumberFormatterBase
 InheriteduseGrouping : Boolean
Enables the use of the grouping separator when formatting numbers.
NumberFormatterBase
Public Methods
 MethodDefined By
  
Constructs a new NumberFormatter object to format numbers according to the conventions of a given locale.
NumberFormatter
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
 Inherited
Deletes a style property from this component instance.
AdvancedStyleClient
 Inherited
Dispatches an event into the event flow.
EventDispatcher
  
Formats a number.
NumberFormatter
  
[static] Lists all of the locale ID names supported by this class.
NumberFormatter
 Inherited
Returns an Array of CSSStyleDeclaration objects for the type selector that applies to this component, or null if none exist.
AdvancedStyleClient
 Inherited
getStyle(styleProp:String):*
[override] Gets a style property that has been set anywhere in this component's style lookup chain.
GlobalizationBase
 Inherited
Returns true if currentCSSState is not null.
AdvancedStyleClient
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
The initialized method is called when this class or a class that extends this class is used in an MXML declaration.
AdvancedStyleClient
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Returns true if cssState matches currentCSSState.
AdvancedStyleClient
 Inherited
Determines whether this instance is the same as, or is a subclass of, the given type.
AdvancedStyleClient
 Inherited
Propagates style changes to the children of this style client instance.
AdvancedStyleClient
  
Parses a string and returns a NumberParseResult object containing the parsed elements.
NumberFormatter
  
Parses a string that contains only digits and optional whitespace characters and returns a Number.
NumberFormatter
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
Sets up the internal style cache values so that the getStyle() method functions.
AdvancedStyleClient
 Inherited
Registers the EffectManager as one of the event listeners for each effect event.
AdvancedStyleClient
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
setStyle(styleProp:String, newValue:*):void
Sets a style property on this component instance.
AdvancedStyleClient
 Inherited
Detects changes to style properties.
AdvancedStyleClient
 Inherited
Flex calls the stylesInitialized() method when the styles for a component are first initialized.
AdvancedStyleClient
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 InheritedThe change event is generated whenever the locale style is changed or another property is set that would cause the format of a number to change or cause updates to the other values available through this class.GlobalizationBase
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
Styles

Styles are either common or associated with a specific theme. If the style is common, it can be used with any theme. If a style is associated with a specific theme, it can only be used if your application uses that theme.

Common Styles
 Style Description Defined By
 InheritedType: String CSS Inheritance: Yes
Language Version: ActionScript 3.0  Product Version: Flex 4.5  Runtime Versions: Flash10.1, AIR 2.5

The locale identifier that specifies the language, region, script and optionally other related tags and keys.
GlobalizationBase
Property Detail

actualLocaleIDName

property
actualLocaleIDName:String  [read-only] [override]

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

The name of the actual locale ID used by this class object. This is the locale that is used to access the formatting data and functionality from the operating system.

If the locale that was set by the locale style is not available, then the value of the actualLocaleIDName is different from the value of the locale style. It indicates the fallback locale that is being used. If the locale style was set to LocaleID.DEFAULT the name of the locale specified by the user's operating system is used.

This property can be used as the source for data binding. When this property is modified, it dispatches the change event.



Implementation
    override public function get actualLocaleIDName():String

Related API Elements

flash.globalization.NumberFormatter.actualLocaleIDName
NumberFormatter()

negativeNumberFormat

property 
negativeNumberFormat:uint

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

A numeric value that indicates a formatting pattern for negative numbers. This pattern defines the location of the negative symbol or parentheses in relation to the numeric portion of the formatted number.

The following table summarizes the possible formats for negative numbers. When a negative number is formatted, the minus sign in the format is replaced with the value of the negativeSymbol property and the 'n' character is replaced with the formatted numeric value.

Negative number format typeFormat
0(n)
1-n
2- n
3n-
4n -

The default value is dependent on the locale and operating system.

This property can be used as the source for data binding. When this property is modified, it dispatches the change event.



Implementation
    public function get negativeNumberFormat():uint
    public function set negativeNumberFormat(value:uint):void

Throws
ArgumentError — if the assigned value is not a number between 0 and 4.

Related API Elements

Constructor Detail

NumberFormatter

()Constructor
public function NumberFormatter()

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

Constructs a new NumberFormatter object to format numbers according to the conventions of a given locale.

The locale for this class is supplied by the locale style. The locale style can be set in several ways:

  • By using the class in an MXML declaration and inheriting the locale from the document that contains the declaration. Example:
          <fx:Declarations> 
                 <s:NumberFormatter id="nf" />
          </fx:Declarations>
  • By using an MXML declaration and specifying the locale value in the list of assignments. Example:
          <fx:Declarations>
              <s:NumberFormatter id="nf_French_France" locale="fr_FR" />
          </fx:Declarations>
  • Calling the setStyle method. For example:
          nf.setStyle("locale", "fr-FR")
  • Inheriting the style from a UIComponent by calling the UIComponent's addStyleClient() method.

If the locale style is not set by one of the above techniques, the instance of this class will be added as a StyleClient to the topLevelApplication and will therefore inherit the locale style from the topLevelApplication object when the locale dependent property getter or locale dependent method is called.

Most of the properties of this class are automatically set based on the locale style. If the locale style is changed, any properties that have not been explicitly set will also be updated based on the new locale. Note that the actual locale that is used is specified by the actualLocaleIDName property.

Related API Elements

Method Detail

format

()method
public function format(value:Object):String

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

Formats a number.

This function formats the number based on the property values of the formatter. If the properties are not modified after the locale style is set, the numbers are formatted according to the locale-specific conventions provided by the operating system for the locale identified by the actualLocaleIDName property. To customize the format, the properties can be altered to control specific aspects of formatting a number.

Very large numbers and very small magnitude numbers can be formatted with this function. However, the number of significant digits is limited to the precision provided by the Number object. Scientific notation is not supported.

If there is an error when formatting, due to an illegal input value or other error, by default the format() method returns null. However if the errorText property is non-null, then the value of the errorText property is returned. The lastOperationStatus property will be set to indicate the error that occurred.

Parameters

value:Object — An object containing a number value to format. If the object is not a Number then it is converted to a number using the Number() conversion function.

Returns
String — A formatted number string.

Related API Elements

getAvailableLocaleIDNames

()method 
public static function getAvailableLocaleIDNames():Vector.<String>

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

Lists all of the locale ID names supported by this class. This is a list of locales supported by the operating system, not a list of locales that the ResourceManager has resources for.

Returns
Vector.<String> — A vector of strings containing all of the locale ID names supported by this class and operating system.

parse

()method 
public function parse(inputString:String):NumberParseResult

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

Parses a string and returns a NumberParseResult object containing the parsed elements.

The NumberParseResult object contains the value of the first number found in the input string, the starting index for the number within the string, and the index of the first character after the number in the string.

If the string does not contain a number, the value property of the NumberParseResult is set to NaN and the startIndex and endIndex properties are set to the hexadecimal value 0x7fffffff.

This function uses the value of the decimalSeparator property to determine the portion of the number that contains fractional digits, and the groupingSeparator property to determine which characters are allowed within the digits of a number, and the negativeNumberFormat property to control how negative values are represented.

The following table identifies the result of strings parsed for the various NegativeNumberFormat values:

NegativeNumberFormatInput StringResult
(n)"(123)" or "( 123 )""-123"
-n"-123" or "- 123""-123"
- n"-123" or "- 123""-123"
n-"123-" or "123 -""-123"
n -"123-" or "123 -""-123"

A single white space is allowed between the number and the minus sign or parenthesis. A white space character is a character that has a Space Separator (Zs) property in the Unicode Character Database. For more information, see http://www.unicode.org/ucd/).

Other properties are ignored when determining a valid number. Specifically the value of the digitsType property is ignored and the digits can be from any of the digit sets that are enumerated in the NationalDigitsType class. The values of the groupingPattern and useGrouping properties do not influence the parsing of the number.

If numbers are preceded or followed in the string by a plus sign '+', the plus sign is treated as a character that is not part of the number.

This function does not parse strings containing numbers in scientific notation (e.g. 1.23e40).

Parameters

inputString:String — The input string to parse.

Returns
NumberParseResult — A NumberParseResult object containing the numeric value and the indices for the start and end of the portion of the string that contains the number.

Throws
TypeError — if the inputString parameter is null.

Related API Elements


Example  ( How to use this example )
The following code parses a number from a string and retrieves the prefix and suffix:
      var nf:NumberFormatter = new NumberFormatter();
      nf.setStyle("locale","fr-FR");
      var str:String = "1,56 mètre"
      var result:NumberParseResult = nf.parse(str);
      trace(result.value) // 1.56
      trace(str.substr(0,result.startIndex));                // ""
      trace(str.substr(result.startIndex, result.endIndex)); // "1,56"
      trace(str.substr(result.endIndex));                 // " mètre"
      

parseNumber

()method 
public function parseNumber(parseString:String):Number

Language Version: ActionScript 3.0
Product Version: Flex 4.5
Runtime Versions: Flash Player 10.1, AIR 2.5

Parses a string that contains only digits and optional whitespace characters and returns a Number. If the string does not begin with a number or contains characters other than whitespace that are not part of the number, then this method returns NaN. White space before or after the numeric digits is ignored.

If the numeric digit is preceded or followed by a plus sign '+' it is treated as a non-whitespace character. The return value is NaN.

See the description of the parse function for more information about number parsing and what constitutes a valid number.

Parameters

parseString:String — The input string to parse.

Returns
Number — A Number object containing the numeric value.

Throws
TypeError — if the parseString is null

Related API Elements

NumberFormatterExample1.mxml
<?xml version="1.0" encoding="utf-8"?>
<!-- Sample program for spark.formatters.NumberFormatter -->
<s:Application
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Declarations>
        <s:NumberFormatter id="numberFormatter"/>
    </fx:Declarations>

    <fx:Script>
        <![CDATA[
            [Bindable]
            private var number:Number = 123456789.123456789;
        ]]>
    </fx:Script>

    <mx:Form>
        <mx:FormItem label="Input Locale ID Name">
            <mx:HBox>
                <s:TextInput id="inputLocaleIDName"/>
                <!-- Upon button click, sets the locale style on the document
                    UI component. The formatter will inherit this style. -->
                <s:Button click="setStyle('locale', inputLocaleIDName.text);"
                          label="Apply"/>
            </mx:HBox>
            <mx:Text text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/>
        </mx:FormItem>
        <mx:FormItem label="Use Grouping">
            <mx:CheckBox id="useGrouping"
                change="numberFormatter.useGrouping= useGrouping.selected"/>
        </mx:FormItem>
        <mx:FormItem label="Fractional Digits">
            <mx:TextInput id="fractionalDigits"
                change="numberFormatter.fractionalDigits = Number(fractionalDigits.text)"/>
        </mx:FormItem>
        <mx:FormItem label="Actual Locale ID Name">
            <mx:Text text="{numberFormatter.actualLocaleIDName}"/>
        </mx:FormItem>
        <mx:FormItem label="Formatted Result">
            <mx:Text text="{numberFormatter.format(number)}"/>
        </mx:FormItem>
    </mx:Form>
</s:Application>
NumberFormatterExample2.mxml
<?xml version="1.0" encoding="utf-8"?>
<!-- Sample program for spark.formatters.NumberFormatter -->
<s:Application
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Declarations>
        <s:NumberFormatter id="numberFormatter"/>
    </fx:Declarations>

    <mx:Form>
        <mx:FormItem label="Input Locale ID Name">
            <mx:HBox>
                <s:TextInput id="inputLocaleIDName"/>
                <!-- Upon button click, sets the locale style on the document
                    UI component. The formatter will inherit this style. -->
                <s:Button click="setStyle('locale', inputLocaleIDName.text);"
                          label="Apply"/>
            </mx:HBox>
            <mx:Text text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/>
        </mx:FormItem>
        <mx:FormItem label="Input Number">
            <s:TextInput id="inputNumber"/>
            <mx:Text text="Example: {numberFormatter.format(123456789.123)}"/>
        </mx:FormItem>
        <mx:FormItem label="Actual Locale ID Name">
            <mx:Text text="{numberFormatter.actualLocaleIDName}"/>
        </mx:FormItem>
        <mx:FormItem label="Parsed Result">
            <mx:Text
                text="{numberFormatter.parseNumber(inputNumber.text).toString()}"/>
        </mx:FormItem>
    </mx:Form>
</s:Application>