Flex Spark CurrencyFormatter错误地格式化'0'

时间:2012-02-10 05:50:19

标签: flex flex-spark

我遇到了问题CurrencyFormatter,但无法正确格式化值0

所有其他值格式正确。

我正在使用Flex 4.5

以下是一个例子:

<?xml version="1.0" encoding="utf-8"?>
<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" minWidth="955" minHeight="600">
    <fx:Declarations>
        <s:CurrencyFormatter currencyISOCode="GBP" id="formatter" useCurrencySymbol="true" currencySymbol="£" trailingZeros="true" leadingZero="true" negativeCurrencyFormat="0" positiveCurrencyFormat="0"  />
    </fx:Declarations>
    <s:HGroup>
        <s:TextInput id="textInput" />
        <s:Label text="{formatter.format(textInput.text)}" />
    </s:HGroup>
</s:Application>

textInput的值不是0时,它的格式正确。

正确设置格式的正确设置是什么?

2 个答案:

答案 0 :(得分:3)

我也注意到了这一点。我从Adobe's help下载了example2,经过稍微调整后,我发现如果我将它传递给0.001,我得到了“$ 0.00”作为回报。这必须是一个错误,否则它只是愚蠢。此外,货币格式的mx形式似乎没有这个问题。与此同时,我将寻找“0”并在我的程序中添加“.001”。希望有人能提出更好的答案。

答案 1 :(得分:0)

我知道这是一个老话题,但我会回答未来的疑虑。 您可以通过将值UP设置为rounding的属性mx:CurrencyFormatter来解决此问题。

以下是一个例子:

<mx:CurrencyFormatter
        id="currencyFormatter"
        currencySymbol=""
        precision="2"
        rounding="up"
        decimalSeparatorFrom=","
        decimalSeparatorTo=","
        useNegativeSign="true"
        useThousandsSeparator="true"
        thousandsSeparatorFrom="."
        thousandsSeparatorTo="."
        alignSymbol="left" />

然后在您的代码中,当您设置值0.001或0.00000001时,结果会得到“0,01”。

currencyFormatter.format(item.total)