我有这个变量:
var resources:Number = 10;
所以,我希望每帧减少0.1,直到达到0,我正在用它来做我想要的事情:
if(resources >= 0.1) resources -= 0.1;
并且它没有减少0.1乘0.1 它正在以更高的最接近值递减到0.1,例如0.100000000009999或类似......
所以我的“var resources:Number = 10;
”变量正在逐渐减少
if(resources >= 0.1) resources -= 0.1; //9.9
if(resources >= 0.1) resources -= 0.1; //9.8
if(resources >= 0.1) resources -= 0.1; //9.7
if(resources >= 0.1) resources -= 0.1; //9.5999999999999999999
if(resources >= 0.1) resources -= 0.1; //9.4999999999999999999
if(resources >= 0.1) resources -= 0.1; //9.3999999999999999988
if(resources >= 0.1) resources -= 0.1; //9.2999999999999888888
不是那么绝对,但是如此相似...... 当“资源”为0.99999999时,该循环正在停止,但我需要它为0
答案 0 :(得分:1)
使用此代码段:
function setPrecision(number:Number, precision:int)
{
precision = Math.pow(10, precision);
return (Math.round(number * precision) / precision);
}
或AS3拥有精度 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Number.html#toPrecision()