新手给出不同的答案ActionScript 3的问题:为什么INT(等等)从(等等)以int
(Math.sqrt((r * r - (r - i) * (r - i)) as Number) * 2) as int
给我从
int(Math.sqrt((r * r - (r - i) * (r - i)) as Number) * 2)
新手给出不同的答案ActionScript 3的问题:为什么INT(等等)从(等等)以int
(Math.sqrt((r * r - (r - i) * (r - i)) as Number) * 2) as int
给我从
int(Math.sqrt((r * r - (r - i) * (r - i)) as Number) * 2)
的as
运营商不同的结果是直接投,而int()
含蓄地发现号码的底线(注意,它实际上并不呼叫Math.floor
)。 Adobe docs for as
表示它检查“第一个操作数是由第二个操作数指定的数据类型的成员”。由于9.59不能表示为int,因此as
强制转换失败,返回null,而int()
首先找到该数字的底部,然后将其转换为int。
你可以做Math.floor(blah) as int
,它应该工作,但它会变慢。假设你想要一个四舍五入的整数,Math.round(blah) as int
会更正确,但int(blah + .5)
将是最快和正确回合。
作为运营商不是多一个演员,更像这样:
我是int? int:null;
这是令人困惑的地狱。它检查变量是否属于该类型,如果是,则返回该变量,否则将得到空值(0表示int)。
那么...你得到了什么样的结果? – 2009-06-04 08:07:43