나는 무작위로 사용하여 소수를 생성합니다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은 반환 Math.Round ((인 Math.random() * (최대 - 최소) + 분), 2) 사용할 수있는 소수의이 개 장소를 한 곳까지 반올림한다;
지금 도움이 되었기를 바랍니다.
이렇게하면 첫 번째 숫자 (1.3이 아닌 1) 만 반환됩니다. –
코드를 실제로 사용해 보셨습니까? 그것이 AS3의'Math.round()'가 작동하는 방식이 아닙니다. 그것은 단지 하나의 논증을 취합니다. –
당신은 결과 및 성능으로 번호가 필요한 경우, 나는이 솔루션은 Math.pow()보다 더 효율적입니다 말할 것/수학 . around() one. 당신이 3 개 소수 필요하면 그냥 반올림 보여 1000
var myNumber:Number = 3.553366582;
myNumber = ((myNumber * 100 + 0.5) >> 0)/100;
//trace = 3.55
100을 변경
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
어떤 연산이 더 복잡한 지 궁금합니다 - 반올림, 곱하기 및 허용 된 응답에서와 같이 나누기? 또는 문자열과 숫자 사이에서 앞뒤로 캐스팅하십시오. –
Genius! 나는이 속임수를 기억할 수 없었다. 실제로 메모리 오버 플로우 문제로 수년 전 그랬습니다. 이것이 교과서인지 확실하지 않지만 위대한 마음은 똑같이 생각합니다! – ejbytes