2012-02-10 9 views
2

0の書式設定に失敗しているCurrencyFormatterというスパークに問題があります。Flex Spark CurrencyFormatterで '0'の書式が正しくありません

他の値はすべてフォーマット済みです。 textInputの値が0以外である場合には

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

、それは正しくフォーマットです:私はここに

のFlex 4.5を使用してい

例です。

これを正しくフォーマットするにはどうすればよいですか?

答えて

3

これも気付きました。私はAdobe's helpからexample2をダウンロードし、それをちょっと微調整した後、私が0.001を渡すと、私は「$ 0.00」を返すことが分かった。これはバグでなければなりません。それ以外の場合はバカになります。また、mx形式のcurrencyformatterではこの問題がないようです。その間、私は "0"を探して、私のプログラムの値に ".001"を加えます。うまくいけば誰かがより良い答えを思いつきます。

0

私はこれが古いスレッドだと知っていますが、将来の疑問に答えるつもりです。 UPという値をmx:CurrencyFormatterのというプロパティに設定することで、この問題を解決できます。ここで

は一例です:あなたは値0.001または0.00000001をフォーマットするとき

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

は、次に、あなたのコードでは、あなたは結果として「0.01」を取得します。

currencyFormatter.format(item.total) 
関連する問題