我已经为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
[EDIT] 如果格式化的数字为0,我通过手动附加具有所需numberalDigits数量的区域设置小数分隔符来解决此问题:
if (myFormattedNumber.text == "0" && numFormat.fractionalDigits)
{
myFormattedNumber.appendText(numFormat.decimalSeparator);
for (var i:uint = 0; i < numFormat.fractionalDigits; i++)
myFormattedNumber.appendText("0");
}
我仍然非常有兴趣知道这是一个错误还是一个功能,但这似乎是对我的疏忽 .
2 回答
它不性感,但这与我遇到类似问题时使用的相似:
Full article here
Number(value).toFixed(2)
怎么样?