spark.formatters

# CurrencyFormatter - AS3 Flex

Package | spark.formatters
Class | public class CurrencyFormatter
Inheritance | CurrencyFormatter NumberFormatterBase GlobalizationBase AdvancedStyleClient EventDispatcher Object
Implements | IFormatter

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10.1, AIR 2.5

The CurrencyFormatter class provides locale-sensitive formatting and parsing of currency values.

This class is a wrapper class around the `flash.globalization.CurrencyFormatter`. Therefore, the locale-specific formatting is provided by the `flash.globalization.CurrencyFormatter`. However, this CurrencyFormatter 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.CurrencyFormatter class uses 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 Syntax Show MXML Syntax
Hide MXML Syntax

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

      <s:CurrencyFormatter
        Properties
        currencyISOCode="locale and OS dependent"
        currencySymbol="locale and OS dependent"
        negativeCurrencyFormat="locale and OS dependent"
        positiveCurrencyFormat="locale and OS dependent"
        useCurrencySymbol="false"
      />

View the examples

More examples

Formatter example
Formatting currency with a Spark formatter
Formatting dates, numbers, and currencies

Learn more

Formatting Data
Spark formatters
Error handling in a Spark formatter
Localization

Related API Elements

flash.globalization.CurrencyFormatter
NumberFormatter

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | actualLocaleIDName : String [override] [read-only] The name of the actual locale ID used by this class object. | CurrencyFormatter
|  | className : String [read-only] The name of the component class. | AdvancedStyleClient
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | currencyISOCode : String The three letter ISO 4217 currency code for the actual locale being used (e.g. | CurrencyFormatter
|  | currencySymbol : String The currency symbol or string for the actual locale being used. | CurrencyFormatter
|  | decimalSeparator : String The decimal separator character used for formatting or parsing numbers that have a decimal part. | NumberFormatterBase
|  | digitsType : uint Defines the set of digit characters to be used when formatting numbers. | NumberFormatterBase
|  | errorText : String Replacement string returned by the format() method when an error occurs. | NumberFormatterBase
|  | fractionalDigits : int The maximum number of digits that can appear after the decimal separator. | NumberFormatterBase
|  | groupingPattern : String Describes the placement of grouping separators within the formatted number string. | NumberFormatterBase
|  | groupingSeparator : String The character or string used for the grouping separator. | NumberFormatterBase
|  | id : String The identity of the component. | AdvancedStyleClient
|  | inheritingStyles : Object An object containing the inheritable styles for this non-visual style client instance. | AdvancedStyleClient
|  | lastOperationStatus : String [override] [read-only] The status of the most recent operation that this class object performed. | NumberFormatterBase
|  | leadingZero : 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
|  | moduleFactory : 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
|  | negativeCurrencyFormat : uint A numeric value that indicates a formatting pattern for negative currency amounts. | CurrencyFormatter
|  | negativeSymbol : String The negative symbol to be used when formatting negative values. | NumberFormatterBase
|  | nonInheritingStyles : Object The beginning of this component's chain of non-inheriting styles. | AdvancedStyleClient
|  | positiveCurrencyFormat : uint A numeric value that indicates a formatting pattern for positive currency amounts. | CurrencyFormatter
|  | styleDeclaration : CSSStyleDeclaration The style declaration that holds the inline styles declared by this object. | AdvancedStyleClient
|  | styleManager : IStyleManager2 [read-only] Returns the StyleManager instance used by this component. | AdvancedStyleClient
|  | styleName : Object The source of this object's style values. | AdvancedStyleClient
|  | styleParent : IAdvancedStyleClient A component's parent is used to evaluate descendant selectors. | AdvancedStyleClient
|  | trailingZeros : Boolean Specifies whether trailing zeros are included in a formatted number. | NumberFormatterBase
|  | useCurrencySymbol : Boolean Enables the use of the currencySymbol property when formatting currency amounts. | CurrencyFormatter
|  | useGrouping : Boolean Enables the use of the grouping separator when formatting numbers. | NumberFormatterBase

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | CurrencyFormatter() Constructs a new CurrencyFormatter object to format numbers representing currency amounts according to the conventions of a given locale. | CurrencyFormatter
|  | 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
|  | clearStyle(styleProp:String):void Deletes a style property from this component instance. | AdvancedStyleClient
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | EventDispatcher
|  | format(value:Object):String Creates a string representing a currency amount formatted according to the current properties of this CurrencyFormatter object, including the locale, useCurrencySymbol, the currencySymbol, or the currencyISOCode properties. | CurrencyFormatter
|  | formattingWithCurrencySymbolIsSafe(requestedISOCode:String):Boolean Determines whether the currently specified currency symbol can be used when formatting currency amounts. | CurrencyFormatter
|  | getAvailableLocaleIDNames():Vector.<String> [static] Lists all of the locale ID names supported by this class. | CurrencyFormatter
|  | getClassStyleDeclarations():Array Returns an Array of CSSStyleDeclaration objects for the type selector that applies to this component, or null if none exist. | AdvancedStyleClient
|  | getStyle(styleProp:String):* [override] Gets a style property that has been set anywhere in this component's style lookup chain. | GlobalizationBase
|  | hasCSSState():Boolean Returns true if currentCSSState is not null. | AdvancedStyleClient
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | EventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | 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
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | matchesCSSState(cssState:String):Boolean Returns true if cssState matches currentCSSState. | AdvancedStyleClient
|  | matchesCSSType(cssType:String):Boolean Determines whether this instance is the same as, or is a subclass of, the given type. | AdvancedStyleClient
|  | notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void Propagates style changes to the children of this style client instance. | AdvancedStyleClient
|  | parse(inputString:String):CurrencyParseResult Parses a string into a currency amount and a currency symbol. | CurrencyFormatter
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | regenerateStyleCache(recursive:Boolean):void Sets up the internal style cache values so that the getStyle() method functions. | AdvancedStyleClient
|  | registerEffects(effects:Array):void Registers the EffectManager as one of the event listeners for each effect event. | AdvancedStyleClient
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | EventDispatcher
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | setStyle(styleProp:String, newValue:*):void Sets a style property on this component instance. | AdvancedStyleClient
|  | styleChanged(styleProp:String):void Detects changes to style properties. | AdvancedStyleClient
|  | stylesInitialized():void Flex calls the stylesInitialized() method when the styles for a component are first initialized. | AdvancedStyleClient
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | EventDispatcher

Events
Click for more information on events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | activate | [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active. | EventDispatcher
|  | change | The 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
|  | deactivate | [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
Click for more information on styles
Hide Inherited Styles
Show Inherited Styles

| Style | Description | Defined By
--- | --- | --- | ---
|  | locale | Type: 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.CurrencyFormatter.actualLocaleIDName
CurrencyFormatter()

### currencyISOCode

property

`currencyISOCode:String`

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10.1, AIR 2.5

The three letter ISO 4217 currency code for the actual locale being used (e.g. USD, EUR, JPY, CNY).

When the `useCurrencySymbol` property is set to `false`, this code is used to indicate the currency type when formatting currency amounts using the `format()` method.

This property is initialized when the locale style is set based on the actual locale that is used. When a fallback locale is used, this property reflects the preferred/default currency code for the fallback locale.

The default value is dependent on the actual 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 currencyISOCode():String`
`public function set currencyISOCode(value:String):void`
Throws

| `TypeError` — if this property is assigned a null value.

Related API Elements

actualLocaleIDName
format()
currencySymbol
formattingWithCurrencySymbolIsSafe()

### currencySymbol

property

`currencySymbol:String`

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10.1, AIR 2.5

The currency symbol or string for the actual locale being used.

This property is used as the currency symbol when formatting currency amounts using the `format()` method with the `withCurrencySymbol` parameter set to `true`.

This property is initialized when the locale style is set based on the actual locale that is used. When a fallback locale is used, this property reflects the preferred/default currency symbol for the fallback locale which may be different then the locale style.

The default value is dependent on the actual 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 currencySymbol():String`
`public function set currencySymbol(value:String):void`
Throws

| `TypeError` — if this property is assigned a null value.

Related API Elements

actualLocaleIDName
format()
formattingWithCurrencySymbolIsSafe()
currencyISOCode

### negativeCurrencyFormat

property

`negativeCurrencyFormat: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 currency amounts. This pattern defines the location of the currency symbol and the negative symbol or parentheses in relation to the numeric portion of the currency amount.

The value of this property must be one of the constants defined in the table below.

The table below summarizes the possible formatting patterns for negative currency amounts. When a currency amount is formatted with the `format()` method:

- The '¤' symbol is replaced with the value of the `currencyISOCode` or the `currencySymbol` property, depending on the value of the `withCurrencySymbol` parameter passed to the `format()` method;
- The '-' character is replaced with the value of the `negativeNumberSymbol` property;
- The 'n' character is replaced with the currency amount value that is passed to the `format()` method.

Negative currency format type | Formatting pattern
0 | (¤n)
1 | -¤n
2 | ¤-n
3 | ¤n-
4 | (n¤)
5 | -n¤
6 | n-¤
7 | n¤-
8 | -n ¤
9 | -¤ n
10 | n ¤-
11 | ¤ n-
12 | ¤ -n
13 | n- ¤
14 | (¤ n)
15 | (n ¤)

The default value is dependent on the actual 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 negativeCurrencyFormat():uint`
`public function set negativeCurrencyFormat(value:uint):void`
Throws

| `ArgumentError` — if the assigned value is not between 0 and 15.

Related API Elements

format()
currencySymbol
negativeSymbol

### positiveCurrencyFormat

property

`positiveCurrencyFormat: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 positive currency amounts. This format defines the location of the currency symbol relative to the numeric portion of the currency amount.

The value of this property must be one of the constants defined in the table below.

The table below summarizes the possible formatting patterns for positive currency amounts. When a currency amount is formatted with the `format()` method:

- The '¤' symbol is replaced with the value of the `currencyISOCode` or the `currencySymbol` property, depending on the value of the `withCurrencySymbol` parameter passed to the `format()` method;
- The 'n' character is replaced with the currency amount value that is passed to the `format()` method.

Positive currency format type | Formatting pattern
0 | ¤n
1 | n¤
2 | ¤ n
3 | n ¤

The default value is dependent on the actual 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 positiveCurrencyFormat():uint`
`public function set positiveCurrencyFormat(value:uint):void`
Throws

| `ArgumentError` — if the assigned value is not between 0 and 3.

Related API Elements

currencySymbol
format()

### useCurrencySymbol

property

`useCurrencySymbol:Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10.1, AIR 2.5

Enables the use of the `currencySymbol` property when formatting currency amounts.

When the `useCurrencySymbol` property is set to `true`, the value of the `currencySymbol` property is used in the string returned by the format method. For example: `$123,456,789.22`

When the `useCurrencySymbol` property is set to `false`, the value of the `currencyISOCode` property is used in the string returned by the `format` method. For example: `USD123,456,789.22`

The default value is `false.`

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 useCurrencySymbol():Boolean`
`public function set useCurrencySymbol(value:Boolean):void`

Related API Elements

formattingWithCurrencySymbolIsSafe()
format()
Constructor Detail

### CurrencyFormatter

()
Constructor

`public function CurrencyFormatter()`

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10.1, AIR 2.5

Constructs a new `CurrencyFormatter` object to format numbers representing currency amounts 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:CurrencyFormatter id="cf" />
          </fx:Declarations>

- By using an MXML declaration and specifying the locale value in the list of assignments.
Example:

          <fx:Declarations>
              <s:CurrencyFormatter id="cf_Japanese" locale="ja-JP" />
          </fx:Declarations>

- Calling the `setStyle()` method, e.g. `cf.setStyle("locale", "ja-JP")`
- 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.

NOTE: When a fallback locale is used, the currency properties are set to default values, and therefore the `currencySymbol` or `currencyISOCode` properties might be given unexpected values. It is a good idea to examine the `currencySymbol` and `currencyISOCode` property values before formatting a currency amount.

Related API Elements

actualLocaleIDName
lastOperationsStatus
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

Creates a string representing a currency amount formatted according to the current properties of this CurrencyFormatter object, including the `locale`, `useCurrencySymbol`, the `currencySymbol`, or the `currencyISOCode` properties.

The `useCurrencySymbol` property determines whether the format method uses the `currencySymbol` or the `currencyISOCode` in the formatted currency amount. The default value for `useCurrencySymobl` is `false` and thus by default currency amounts will be formatted with the `currencyISOCode`

Many countries and regions use the same currency symbols for different currencies. For example, the United States, Australia, New Zealand, Canada, and Mexico all use the same dollar sign symbol ($) for local currency values. When the formatting currency differs from the user's local currency it is best to use the ISO code as the currency string. You can use the `formattingWithCurrencySymbolIsSafe()` method to test whether or the ISO code of the currency to be formatted matches the default currency ISO code for the actual local used by the formatter.

This method can format numbers of very large and very small magnitudes. However, the number of significant digits is limited to the precision provided by the Number data type.

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 is set to indicate the error that occurred.

Parameters

| `value:Object` — An object that contains the numeric value to be formatted into a currency string. If the object is not a `Number` then it will be converted to a number using the `Number()` conversion function.

Returns

| `String` — A string containing the formatted currency value.

Related API Elements

currencySymbol
currencyISOCode
formattingWithCurrencySymbolIsSafe()
lastOperationStatus
useCurrencySymbol
spark.formatters.supportClasses.NumberFormatterBase.errorText
spark.globalization.LastOperationStatus
Example ( How to use this example )
In this example the `locale` style is set to fr-CA [French (Canada)]. The example assumes that this locale is supported in the user's operating system and therefore no fallback locale is used. For fr-CA, the default currency is Canadian dollars with an ISO code of CAD. Therefore when formatting a currency with the default values, CAD is used as the currency symbol. However when the `useCurrencySymbol` property is set to `true`, the `currencySymbol` property is used to format the currency amount.
Copy

          <fx:Declarations>
            <s:CurrencyFormatter id="cf_use_ISOCode" locale="fr-CA" />
            <s:CurrencyFormatter id="cf_use_Symbol" locale="fr-CA"
                               useCurrencySymbol="true" />
          </fx:Declarations>

          <s:VGroup>
            <!-- label will use ISO code: 1,234,567.89 CAD -->
            <s:Label text="{cf_use_ISOCode.format(1234567.89)}" />
            <!-- label will use currency symbol: 1,234,567.89 $ -->
            <s:Label text="{cf_use_Symbol.format(1234567.89)}" />
          </s:VGroup>

The second example shows a method of formatting a currency amount in Canadian dollars using the default user's locale. The `formattingWithCurrencySymbolIsSafe()` method is used to set the value of `useCurrencySymbol` property. If the user's default locale is Canada (for example fr-CA or en-CA), then the default currency symbol for Canada is used. If there is some locale is the default, then the `currencyISOCode` of CAD will be used in the formatted currency amount.

Copy

          <fx:Declarations>
           <s:CurrencyFormatter id="cf_CAD" locale="{LocaleID.DEFAULT}"
            currencyISOCode="CAD"
            useCurrencySymbol="{cf_CAD.formattingWithCurrencySymbolIsSafe('CAD')}"
           />
          </fx:Declarations>

          <fx:Script>
          <![CDATA[
              import flash.globalization.LocaleID;
          ]]>
          </fx:Script>

          <!-- label will use ISO code or currency symbol depending on
                  user's default locale -->
          <s:Label text="{cf_CAD.format(1234567.89)}" />

### formattingWithCurrencySymbolIsSafe

()
method

`public function formattingWithCurrencySymbolIsSafe(requestedISOCode:String):Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10.1, AIR 2.5

Determines whether the currently specified currency symbol can be used when formatting currency amounts.

Many regions and countries use the same currency symbols. This method can be used to safeguard against the use of an ambiguous currency symbol, or a currency symbol or ISO code that is different than expected due to the use of a fallback locale.

A common use case for this method is to determine whether to show a local currency symbol (if the amount is formatted in the user's default currency), or a more specific ISO code string (if the amount is formatted in a currency different from the user's default).

This method compares the `requestedISOCode` parameter against the actual locale's default `currencyISOCode`, returning `true` if the strings are equal and `false` if they are not. When the strings are equal, using the `format()` method with the `useCurrencySymbol` property set to `true` results in a formatted currency value string with a currency symbol that is used in the current locale. If this method returns `false`, then using the `format()` method with the `useCurrencySymbol` property set to `true` could result in the use of an ambiguous or incorrect currency symbol.

Parameters

| `requestedISOCode:String` — A three letter ISO 4217 currency code (for example, USD for US dollars, EUR for Euros). Must contain three uppercase letters from A to Z.

Returns

| `Boolean` — `true` if the default `currencyISOCode` for the locale corresponding to the `actualLocaleIDName` matches the `requestedISOCode` parameter; otherwise `false`.

Throws

| `TypeError` — if the `requestedISOCode` parameter is null.

Related API Elements

actualLocaleIDName
currencySymbol
currencyISOCode
useCurrencySymbol

### 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):CurrencyParseResult`

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10.1, AIR 2.5

Parses a string into a currency amount and a currency symbol.

The parsing algorithm uses the value of the `decimalSeparator` property to determine the integral and fractional portion of the number. It uses the values of the `negativeCurrencyFormat` and `positiveCurrencyFormat` properties to determine the location of the currency symbol or string relative to the currency amount. For negative amounts the value of the `negativeCurrencyFormat` property determines the location of the negative symbol and whether parentheses are used.

If the order of the currency symbol, minus sign, and number in the input string does not match the pattern identified by the `negativeCurrencyFormat` and `positiveCurrencyFormat` properties, then:

1. The `value` property of the returned `CurrencyParseResult` object is set to `NaN`.
2. The `currencyString` property of the returned CurrencyParseResult object is set to `null`.
3. The `lastOperationStatus` property is set to `LastOperationStatus.PARSE_ERROR` indicate that parsing failed.

The input string may include space characters, which are ignored during the parsing.

Parsing can succeed even if there is no currency symbol. No validation is done of the portion of the string corresponding to the currency symbol. If there is no currency symbol or string, the `currencyString` property in the returned CurrencyParseResult object is set to an empty string.

Parameters

| `inputString:String` — The input string to parse.

Returns

| `CurrencyParseResult` — A CurrencyParseResult object containing the numeric value and the currency symbol or string.

Throws

| `TypeError` — if the `inputString` parameter is null.

Related API Elements

spark.formatters.supportClasses.NumberFormatterBase.decimalSeparator
negativeCurrencyFormat
positiveCurrencyFormat
flash.globalization.CurrencyParseResult
Examples How to use this example
CurrencyFormatterExample1.mxml
Copy

    <?xml version="1.0" encoding="utf-8"?>
    <!-- Sample program for spark.formatters.CurrencyFormatter -->
    <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:CurrencyFormatter id="currencyFormatter"/>
        </fx:Declarations>

        <fx:Script>
            <![CDATA[
                import flash.globalization.CurrencyParseResult;

                private function localeChange():void
                {
                    // Sets the locale style on the document UI component.
                    // The formatter will inherit this style.
                    setStyle('locale', inputLocaleIDName.text);
                    inputCurrencyChange();
                }

                private function inputCurrencyChange():void
                {
                    const cpr:CurrencyParseResult
                                    = currencyFormatter.parse(inputCurrency.text);
                    parsedResult.text = "Currency String: [" + cpr.currencyString
                        + "], Amount: [" + cpr.value.toString() + "]";
                }
            ]]>
        </fx:Script>

        <mx:Form>
            <mx:FormItem label="Input Locale ID Name">
                <mx:HBox>
                    <s:TextInput id="inputLocaleIDName"/>
                    <s:Button click="localeChange()" label="Apply"/>
                </mx:HBox>
                <mx:Text text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/>
            </mx:FormItem>
            <mx:FormItem label="Input Currency Amount">
                <s:TextInput id="inputCurrency" change="inputCurrencyChange()"/>
                <mx:Text text="Example: {currencyFormatter.format(123456789.123)}"/>
            </mx:FormItem>
            <mx:FormItem label="Actual Locale ID Name">
                <mx:Text text="{currencyFormatter.actualLocaleIDName}"/>
            </mx:FormItem>
            <mx:FormItem label="Parsed Result">
                <mx:Text id="parsedResult"/>
            </mx:FormItem>
        </mx:Form>
    </s:Application>

CurrencyFormatterExample2.mxml
Copy

    <?xml version="1.0" encoding="utf-8"?>
    <!-- Simple example to demonstrate the Spark CurrencyFormatter. -->
    <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:CurrencyFormatter id="currencyFormatter"/>
        </fx:Declarations>

        <fx:Script>
            <![CDATA[
                [Bindable]
                private var currencyAmount:Number = 123456.789;
            ]]>
        </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 Currency Symbol">
                <s:CheckBox id="useSymbol"
                    click="currencyFormatter.useCurrencySymbol = useSymbol.selected"/>
            </mx:FormItem>
            <mx:FormItem label="Actual Locale ID Name">
                <s:Label text="{currencyFormatter.actualLocaleIDName}"/>
            </mx:FormItem>
            <mx:FormItem label="Formatted Result">
                <s:Label text="{currencyFormatter.format(currencyAmount)}"/>
            </mx:FormItem>
        </mx:Form>
    </s:Application>

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00