as3中的小数到小数点后一位?

pan*_*hro 4 actionscript-3

我使用以下方法随机生成小数:

private function randomNumber(min:Number, max:Number):Number
    {
        return Math.random() * (max - min) + min;
    }
Run Code Online (Sandbox Code Playgroud)

它出现了类似1.34235346435的东西.

如何将其转换为1.3.

Jon*_*org 13

你可以这样舍入到小数点后一位;

var newValue:Number = Math.round(oldValue * 10)/10
Run Code Online (Sandbox Code Playgroud)

或者像这样的任意数量的小数位:

function round2(num:Number, decimals:int):Number
{
    var m:int = Math.pow(10, decimals);
    return Math.round(num * m) / m;
}
trace(round2(1.3231321321, 3)); //1.323
Run Code Online (Sandbox Code Playgroud)


Hio*_*321 5

只需使用 .toFixed 或 .toPrecision 方法,它不必很复杂(请注意,数字将成为字符串,因此您需要将其分配给此类或将其转换回来)。

例如。

    var numb:Number = 4.3265891;
    var newnumb;

    newnumb=numb.toFixed(2);//rounds to two decimal places, can be any number up to 20
    trace(newnumb);//traces 4.33

    newnumb=numb.toPrecision(3);//the 3 means round to the first 3 numbers, can be any number from 1 to 20
    trace(newnumb);//traces 4.33
Run Code Online (Sandbox Code Playgroud)