我已将属性分配给 NumberFormatter 对象,以便格式化值包含前导零、尾随零和 2 个小数位。
除非被格式化的数字为 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
[编辑] 如果格式化数字为 0,我已通过手动附加区域设置小数分隔符和所需的 fractionalDigits 数量来解决此问题:
if (myFormattedNumber.text == "0" && numFormat.fractionalDigits)
{
myFormattedNumber.appendText(numFormat.decimalSeparator);
for (var i:uint = 0; i < numFormat.fractionalDigits; i++)
myFormattedNumber.appendText("0");
}
我仍然很想知道这是一个错误还是一个功能,但这对我来说似乎是一个疏忽。