L'opérateur as
est une distribution directe , alors que int()
trouve implicitement le floor du Number (notez qu'il n'appelle pas réellement Math.floor
, cependant). Le Adobe docs for as
dit qu'il vérifie que le "premier opérande est un membre du type de données spécifié par le deuxième opérande." Puisque 9.59 n'est pas représentable en tant qu'int, la distribution as
échoue et renvoie null, alors que int()
trouve d'abord le plancher du nombre, puis le convertit en int.
Vous pouvez faire Math.floor(blah) as int
, et cela devrait fonctionner, même si ce serait plus lent. En supposant que vous voulez un arrondi int, Math.round(blah) as int
serait plus correct, mais int(blah + .5)
serait plus rapide et rond correctement.
Eh bien ... quels sont les résultats? –
9.59 ... sans aucun casting vers int, 9 avec le second, et 0 pour le premier. – Archagon
J'ai fait un peu plus de tests, et apparemment (9 comme int), (9.5 comme nombre), et (int (9.5)) donnent les résultats corrects, mais (9.5 comme int) aboutit à null. Pourquoi cela serait-il le cas? – Archagon