Apache Flex 4.16.1 API Reference | All Packages | All Classes | Index | Frames No Frames |
NumberFormatter

Package | mx.formatters
Class | public class NumberFormatter
Inheritance | NumberFormatter Formatter Object

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

| Starting with Flex 4.5, Apache recommends that you use the spark.formatters.NumberFormatter class as an alternative to this class.

The NumberFormatter class formats a valid number by adjusting the decimal rounding and precision, the thousands separator, and the negative sign.

If you use both the `rounding` and `precision` properties, rounding is applied first, and then you set the decimal length by using the specified `precision` value. This lets you round a number and still have a trailing decimal; for example, 303.99 = 304.00.

If an error occurs, an empty String is returned and a String describing the error is saved to the `error` property. The `error` property can have one of the following values:

- `"Invalid value"` means an invalid numeric value is passed to the `format()` method. The value should be a valid number in the form of a Number or a String.
- `"Invalid format"` means one of the parameters contain an unusable setting.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

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

      <mx:NumberFormatter
        decimalSeparatorFrom="."
        decimalSeparatorTo="."
        precision="-1"
        rounding="none|up|down|nearest"
        thousandsSeparatorFrom=","
        thousandsSeparatorTo=","
        useNegativeSign="true|false"
        useThousandsSeparator="true|false"/>

View the examples

See also

mx.formatters.NumberBase
mx.formatters.NumberBaseRoundType

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | decimalSeparatorFrom : String Decimal separator character to use when parsing an input String. | NumberFormatter
|  | decimalSeparatorTo : String Decimal separator character to use when outputting formatted decimal numbers. | NumberFormatter
|  | defaultInvalidFormatError : String [static] Error message for an invalid format string specified to the formatter. | Formatter
|  | defaultInvalidValueError : String [static] Error messages for an invalid value specified to the formatter. | Formatter
|  | error : String Description saved by the formatter when an error occurs. | Formatter
|  | precision : Object Number of decimal places to include in the output String. | NumberFormatter
|  | rounding : String Specifies how to round the number. | NumberFormatter
|  | thousandsSeparatorFrom : String Character to use as the thousands separator in the input String. | NumberFormatter
|  | thousandsSeparatorTo : String Character to use as the thousands separator in the output String. | NumberFormatter
|  | useNegativeSign : Object If true, format a negative number by preceding it with a minus "-" sign. | NumberFormatter
|  | useThousandsSeparator : Object If true, split the number into thousands increments by using a separator character. | NumberFormatter

Protected Properties
Hide Inherited Protected Properties
Show Inherited Protected Properties

| Property | Defined By
--- | --- | ---
|  | resourceManager : IResourceManager [read-only] A reference to the object which manages all of the application's localized resources. | Formatter

Public Methods

| Method | Defined By
--- | --- | ---
|  | NumberFormatter() Constructor. | NumberFormatter
|  | format(value:Object):String [override] Formats the number as a String. | NumberFormatter

Protected Methods
Show Inherited Protected Methods
Show Inherited Protected Methods

| Method | Defined By
--- | --- | ---
|  | resourcesChanged():void This method is called when a Formatter is constructed, and again whenever the ResourceManager dispatches a "change" Event to indicate that the localized resources have changed in some way. | Formatter

Property Detail

decimalSeparatorFrom | property

`decimalSeparatorFrom:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Decimal separator character to use when parsing an input String.

When setting this property, ensure that the value of the `thousandsSeparatorFrom` property does not equal this property. Otherwise, an error occurs when formatting the value.

The default value is `"."`.

Implementation
`public function get decimalSeparatorFrom():String`
`public function set decimalSeparatorFrom(value:String):void`

See also

format()

decimalSeparatorTo | property |

`decimalSeparatorTo:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Decimal separator character to use when outputting formatted decimal numbers.

When setting this property, ensure that the value of the `thousandsSeparatorTo` property does not equal this property. Otherwise, an error occurs when formatting the value.

The default value is `"."`.

Implementation
`public function get decimalSeparatorTo():String`
`public function set decimalSeparatorTo(value:String):void`

See also

format()

precision | property |

`precision:Object`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Number of decimal places to include in the output String. You can disable precision by setting it to `-1`. A value of `-1` means do not change the precision. For example, if the input value is 1.453 and `rounding` is set to `NumberBaseRoundType.NONE`, return a value of 1.453. If `precision` is `-1` and you have set some form of rounding, return a value based on that rounding type.

The default value is `-1`.

Implementation
`public function get precision():Object`
`public function set precision(value:Object):void`

rounding | property |

`rounding:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Specifies how to round the number.

In ActionScript, you can use the following constants to set this property: `NumberBaseRoundType.NONE`, `NumberBaseRoundType.UP`, `NumberBaseRoundType.DOWN`, or `NumberBaseRoundType.NEAREST`. Valid MXML values are "down", "nearest", "up", and "none".

The default value is `NumberBaseRoundType.NONE`.

Implementation
`public function get rounding():String`
`public function set rounding(value:String):void`

See also

mx.formatters.NumberBaseRoundType

thousandsSeparatorFrom | property |

`thousandsSeparatorFrom:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Character to use as the thousands separator in the input String.

When setting this property, ensure that the value of the `decimalSeparatorFrom` property does not equal this property. Otherwise, an error occurs when formatting the value.

The default value is `","`.

Implementation
`public function get thousandsSeparatorFrom():String`
`public function set thousandsSeparatorFrom(value:String):void`

See also

format()

thousandsSeparatorTo | property |

`thousandsSeparatorTo:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Character to use as the thousands separator in the output String.

When setting this property, ensure that the value of the `decimalSeparatorTo` property does not equal this property. Otherwise, an error occurs when formatting the value.

The default value is `","`.

Implementation
`public function get thousandsSeparatorTo():String`
`public function set thousandsSeparatorTo(value:String):void`

See also

format()

useNegativeSign | property |

`useNegativeSign:Object`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

If `true`, format a negative number by preceding it with a minus "-" sign. If `false`, format the number surrounded by parentheses, for example (400).

The default value is `true`.

Implementation
`public function get useNegativeSign():Object`
`public function set useNegativeSign(value:Object):void`

useThousandsSeparator | property |

`useThousandsSeparator:Object`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

If `true`, split the number into thousands increments by using a separator character.

The default value is `true`.

Implementation
`public function get useThousandsSeparator():Object`
`public function set useThousandsSeparator(value:Object):void`
Constructor Detail

NumberFormatter | () | Constructor

`public function NumberFormatter()`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Constructor.

Method Detail

format | () | method

`override public function format(value:Object):String`

Language Version : | ActionScript 3.0

Product Version : | Flex 3

Runtime Versions : | Flash Player 9, AIR 1.1

Formats the number as a String. If `value` cannot be formatted, return an empty String and write a description of the error to the `error` property.

Parameters

| `value:Object` — Value to format.

Returns

| `String` — Formatted String. Empty if an error occurs.

Examples
NumberFormatterExample.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.

    -->
    <!-- Simple example to demonstrate 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:Script>
            <![CDATA[
                import mx.events.ValidationResultEvent;

                private var vResult:ValidationResultEvent;

                // Event handler to validate and format input.
                private function Format():void {
                    vResult = numVal.validate();
                    if (vResult.type == ValidationResultEvent.VALID) {
                        formattedNumber.text = numberFormatter.format(inputVal.text);
                    } else {
                        formattedNumber.text = "";
                    }
                }
            ]]>
        </fx:Script>

        <fx:Declarations>
            <mx:NumberFormatter id="numberFormatter" precision="4"
                    useThousandsSeparator="true" useNegativeSign="true"/>

            <mx:NumberValidator id="numVal" source="{inputVal}" property="text"
                    allowNegative="true" domain="real"/>
        </fx:Declarations>

        <s:Panel title="NumberFormatter Example"
                width="75%" height="75%"
                horizontalCenter="0" verticalCenter="0">
            <mx:Form left="10" right="10" top="10" bottom="10">
                <mx:FormItem label="Enter number:">
                    <s:TextInput id="inputVal" text="" width="50%"/>
                </mx:FormItem>
                <mx:FormItem label="Formatted number (precision=4): ">
                    <s:TextInput id="formattedNumber" editable="false" width="50%"/>
                </mx:FormItem>
                <mx:FormItem>
                    <s:Button label="Validate and Format" click="Format();"/>
                </mx:FormItem>
            </mx:Form>
        </s:Panel>

    </s:Application>

Wed Nov 15 2017, 09:50 AM +01:00