Packagespark.formatters
Classpublic class NumberFormatter
InheritanceNumberFormatter Inheritance NumberFormatterBase Inheritance GlobalizationBase Inheritance AdvancedStyleClient Inheritance flash.events.EventDispatcher
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

See also

flash.globalization.NumberFormatter


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
 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
clearStyle(styleProp:String):void
Deletes a style property from this component instance.
AdvancedStyleClient
  
format(value:Object):String
Formats a number.
NumberFormatter
  
getAvailableLocaleIDNames():Vector.<String>
[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
hasCSSState():Boolean
Returns true if currentCSSState is not null.
AdvancedStyleClient
 Inherited
initialized(document:Object, id:String):void
The initialized method is called when this class or a class that extends this class is used in an MXML declaration.
AdvancedStyleClient
 Inherited
matchesCSSState(cssState:String):Boolean
Returns true if cssState matches currentCSSState.
AdvancedStyleClient
 Inherited
matchesCSSType(cssType:String):Boolean
Determines whether this instance is the same as, or is a subclass of, the given type.
AdvancedStyleClient
 Inherited
notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void
Propagates style changes to the children of this style client instance.
AdvancedStyleClient
  
parse(inputString:String):NumberParseResult
Parses a string and returns a NumberParseResult object containing the parsed elements.
NumberFormatter
  
parseNumber(parseString:String):Number
Parses a string that contains only digits and optional whitespace characters and returns a Number.
NumberFormatter
 Inherited
regenerateStyleCache(recursive:Boolean):void
Sets up the internal style cache values so that the getStyle() method functions.
AdvancedStyleClient
 Inherited
registerEffects(effects:Array):void
Registers the EffectManager as one of the event listeners for each effect event.
AdvancedStyleClient
 Inherited
setStyle(styleProp:String, newValue:*):void
Sets a style property on this component instance.
AdvancedStyleClient
 Inherited
styleChanged(styleProp:String):void
Detects changes to style properties.
AdvancedStyleClient
 Inherited
Flex calls the stylesInitialized() method when the styles for a component are first initialized.
AdvancedStyleClient
Protected Methods
 MethodDefined By
 Inherited
AdvancedStyleClient
Events
 Event Summary Defined By
 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
Styles
 Style Description Defined By
 InheritedType: String CSS Inheritance: yes
The locale identifier that specifies the language, region, script and optionally other related tags and keys.

See also

GlobalizationBase
Property Detail
actualLocaleIDNameproperty
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.


Implementation
    public function get actualLocaleIDName():String

See also

flash.globalization.NumberFormatter.actualLocaleIDName
NumberFormatter()
negativeNumberFormatproperty 
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.


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.

See also

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:

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.

See also

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.

See also

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.

See also

flash.globalization.NumberParseResult
parseNumber()
flash.globalization.NationalDigitsType

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

See also

parse()
flash.globalization.NationalDigitsType
Examples
NumberFormatterExample1.mxml
<?xml version="1.0" encoding="utf-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<!-- 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>
    
    <s:Form>
        <s:FormItem label="Input Locale ID Name">
            <s:HGroup>
                <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"/>
            </s:HGroup>
            <s:Label text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/>
        </s:FormItem>
        <s:FormItem label="Use Grouping">
            <s:CheckBox id="useGrouping"
                         change="numberFormatter.useGrouping = useGrouping.selected"/>
        </s:FormItem>
        <s:FormItem label="Fractional Digits">
            <s:TextInput id="fractionalDigits"
                          change="numberFormatter.fractionalDigits = Number(fractionalDigits.text)"/>
        </s:FormItem>
        <s:FormItem label="Actual Locale ID Name">
            <s:Label text="{numberFormatter.actualLocaleIDName}"/>
        </s:FormItem>
        <s:FormItem label="Formatted Result">
            <s:Label text="{numberFormatter.format(number)}"/>
        </s:FormItem>
    </s:Form>
</s:Application>
NumberFormatterExample2.mxml
<?xml version="1.0" encoding="utf-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<!-- 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>
    
    <s:Form>
        <s:FormItem label="Input Locale ID Name">
            <s:HGroup>
                <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"/>
            </s:HGroup>
            <s:Label text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/>
        </s:FormItem>
        <s:FormItem label="Input Number">
            <s:TextInput id="inputNumber"/>
            <s:Label text="Example: {numberFormatter.format(123456789.123)}"/>
        </s:FormItem>
        <s:FormItem label="Actual Locale ID Name">
            <s:Label text="{numberFormatter.actualLocaleIDName}"/>
        </s:FormItem>
        <s:FormItem label="Parsed Result">
            <s:Label
                text="{numberFormatter.parseNumber(inputNumber.text).toString()}"/>
        </s:FormItem>
    </s:Form>
</s:Application>