减少小数位数

1 actionscript-3

在AS3中,我得到一个像这样的数字:0.9130406010219044.有没有办法减少小数的数量(除了将这个数字乘以一百万)?有没有办法在执行除法之前减少数字?

Bak*_*pii 5

从此链接获得以下函数,该函数舍入到任意小数位数:

public function trim(theNumber:Number, decPlaces:Number) : Number {
    if (decPlaces >= 0) {
        var temp:Number = Math.pow(10, decPlaces);
        return Math.round(theNumber * temp) / temp;
    }

    return theNumber;
} 

// Round a number to two decimal places trace(trim(1.12645, 2));
// Displays: 1.13
Run Code Online (Sandbox Code Playgroud)

注意:我通过添加类型稍微改变了函数定义.请参阅链接以获取解释和原始源代码.theNumber如果decPlaces小于或等于零,也使其返回.

  • 实际上这个`Math.round(EVAL_NUMBER*100)/ 100;`是迄今为止最快的方法,第二个是上面的`trim`方法,接着是`toFixed`,到目前为止最慢的是涉及`substr`的​​方法(如果你在小数点前有一个以上的数字,它也不会舍入而且不起作用).通过运行相同的表达式测试所有方法一百万次. (2认同)