我已經將屬性分配給NumberFormatter對象,以便格式化的值包含前導零,尾隨零和2位小數。ActionScript - 使用NumberFormatter格式化零?
格式化工作,除非被格式化的數字是0.我如何格式化0與設置的屬性,使0變爲0.00?
var numFormat:NumberFormatter = new NumberFormatter(LocaleID.DEFAULT);
numFormat.leadingZero = true;
numFormat.trailingZeros = true;
numFormat.fractionalDigits = 2;
trace(numFormat.formatNumber(46)); //46.00
trace(numFormat.formatNumber(0.556849)); //0.56
trace(numFormat.formatNumber(0)); //0
[編輯] 我已經通過用的fractionalDigits所需數量的手動附加的區域設置小數分隔如果格式化數爲0補救此問題:
if (myFormattedNumber.text == "0" && numFormat.fractionalDigits)
{
myFormattedNumber.appendText(numFormat.decimalSeparator);
for (var i:uint = 0; i < numFormat.fractionalDigits; i++)
myFormattedNumber.appendText("0");
}
我對於知道這是一個錯誤還是一個特性,我仍然很感興趣,但對我來說這似乎是一個疏忽。
該代碼是可怕的。大聲笑。如果返回的字符串爲零,那麼簡單地追加「.00」也可以。似乎這是NumberFormatter類中的錯誤。如果傳遞給格式化程序的值爲0,formatNumber(),formatInt()和formatUint()全都返回「0」,不需要格式。 – TheDarkIn1978 2011-03-02 07:28:50
哈哈是的,絕對不是性感。它用於貨幣格式化,特別是非美國。 – TNC 2011-03-02 07:32:03
如果更改某些設置,追加'.00'並不總是您想要的。另外,0在Flash Player 11中返回0.00,所以也許你不必做任何事情。 – 2011-03-02 07:36:43