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