我遇到了问题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时,它的格式正确。
正确设置格式的正确设置是什么?
答案 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)