新手ActionScript 3问题:为什么呢
(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)
Andrew Champ.. 8
该as
运营商是直接投,而int()
隐含发现号(请注意,它实际上并没有调用的地板Math.floor
,虽然).所述的Adobe文档用于as
说检查该"第一个操作数是由所述第二操作数指定的数据类型的成员".由于9.59不能表示为int,因此强制转换as
无法返回null,而int()
首先查找数字的下限,然后将其强制转换为int.
你可以做Math.floor(blah) as int
,它应该工作,虽然它会更慢.假设你想要一个舍入的int,Math.round(blah) as int
会更正确,但int(blah + .5)
会更快和圆正确.
该as
运营商是直接投,而int()
隐含发现号(请注意,它实际上并没有调用的地板Math.floor
,虽然).所述的Adobe文档用于as
说检查该"第一个操作数是由所述第二操作数指定的数据类型的成员".由于9.59不能表示为int,因此强制转换as
无法返回null,而int()
首先查找数字的下限,然后将其强制转换为int.
你可以做Math.floor(blah) as int
,它应该工作,虽然它会更慢.假设你想要一个舍入的int,Math.round(blah) as int
会更正确,但int(blah + .5)
会更快和圆正确.