я назначил свойства объекту 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
[РЕДАКТИРОВАТЬ] Я исправил эту проблему, вручную добавив десятичный разделитель локали с нужным номеромof fraalDigits, если отформатированное число равно 0:
if (myFormattedNumber.text == "0" && numFormat.fractionalDigits)
{
myFormattedNumber.appendText(numFormat.decimalSeparator);
for (var i:uint = 0; i < numFormat.fractionalDigits; i++)
myFormattedNumber.appendText("0");
}
Мне все еще очень интересно узнать, является ли это ошибкой или функцией, но мне это кажется упущением.