格式化数字

时间:2009-04-20 06:40:33

标签: flex actionscript-3

如何减少动作脚本中小数点前的位数。   例如10000意味着它只打印10和 12345 = 12; 90000 = 90;

4 个答案:

答案 0 :(得分:1)

Integer divide乘以1000。

答案 1 :(得分:0)

尝试:

var i: int = j / 1000

除非您的意思是减少小数点前的位数,但保持 <1;

所以:10000 * .123 *表示它只打印10 <.123 和12345 * .8 * = 12 * .8 *; 90000 * 0.999 * = 90 * 0.999 *;

答案 2 :(得分:0)

取决于您处理的数字类型(uint,int或Number)以及是否要将数字减少设定数量或减少 a设定金额。在Number的情况下,您希望如何处理小数点后的数字。 代码将uint减少到一定数量的数字。

trace(ReduceToDigitLength(10000, 2)); //traces 10
trace(ReduceToDigitLength(12345, 2)); //traces 12
trace(ReduceToDigitLength(90000, 2)); //traces 90
trace(ReduceToDigitLength(1235, 2)); //traces 12
trace(ReduceToDigitLength(15, 2)); //traces 15
trace(ReduceToDigitLength(9, 2)); //traces 9
//...
function ReduceToDigitLength(value:uint, length:uint):uint
{
    var digitLength:uint = value.toString().length;

    if (digitLength <= length)
        return value;

    return RemoveDigits(value, digitLength - length);
}

function RemoveDigits(value:uint, digitsToRemove:uint):uint
{
    return Math.floor(value / Math.pow(10, digitsToRemove));
}

答案 3 :(得分:0)

要减少小数点前的数字,只需除以10的倍数。如果这确实是一个数字并且你想要一个整数,你可能希望通过强制转换数字到int或uint(取决于数字本身的性质)。请注意,Math.floor将返回另一个数字,并且对您没有太大帮助,因为它仍然可以产生具有非常小的小数位的输出。

要在MXML中进行更好的格式控制,请查看框架中的格式化类: http://livedocs.adobe.com/flex/3/langref/mx/formatters/NumberFormatter.html