我使用随机生成一个小数:as3中的小数点后一位小数吗?
private function randomNumber(min:Number, max:Number):Number
{
return Math.random() * (max - min) + min;
}
它出来的东西像1.34235346435。
如何将其转换为1.3。
我使用随机生成一个小数:as3中的小数点后一位小数吗?
private function randomNumber(min:Number, max:Number):Number
{
return Math.random() * (max - min) + min;
}
它出来的东西像1.34235346435。
如何将其转换为1.3。
你可以像这样四舍五入到一位小数;
var newValue:Number = Math.round(oldValue * 10)/10
或小数位这样的任意数目:
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
用此代替 return Math.Round((Math.random()*(max-min)+ min),1);
,1会总结,直到1处
2位小数,你可以使用 回报Math.Round((的Math.random()*(最大值 - 最小值)+分),2);
我希望现在有帮助。
这只会返回第一个数字(1,不是1.3)。 – 2012-07-13 11:17:50
你真的尝试过你的代码吗?这不是AS3的'Math.round()'的工作原理。它只需要一个参数。 – 2012-07-13 12:31:10
如果您需要数量的结果和表现,我会说这个解决方案比Math.pow()更高效/数学。第一回合。如果你需要3位小数只是改变100 1000
var myNumber:Number = 3.553366582;
myNumber = ((myNumber * 100 + 0.5) >> 0)/100;
//trace = 3.55
展示四舍五入:
var myNumber:Number = 3.557366582;
myNumber = ((myNumber * 100 + 0.5) >> 0)/100;
//trace = 3.56
只需使用.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
我想知道哪一种手术更为复杂 - 四舍五入,相乘和除法在公认的答案中?或者在一个字符串和一个数字之间来回转换? – 2015-08-05 02:03:37
天才!我不记得这个伎俩。我实际上是在那些年以前遇到了内存溢出的问题。不知道这是不是教科书,但伟大的思想家一样想! – ejbytes 2017-01-28 03:28:01