2012-02-10 102 views
2

我遇到了火花CurrencyFormatter,它無法正確格式化值0Flex 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的,它的格式正確無誤。

正確設置此格式的正確設置是什麼?

回答

3

我也注意到了這一點。我從Adobe's help下載了example2,在調整了一下後,我發現如果我通過了0.001,我得到了「0.00美元」的回報。這必須是一個錯誤,否則就是愚蠢的。另外,currencyformatter的mx格式似乎沒有這個問題。與此同時,我將要查找「0」並將「.001」添加到我的程序中的值中。希望有人提出一個更好的答案。

0

我知道這是一個古老的線程,但我會回答以備將來的疑惑。 您可以通過將值UP設置爲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)