If you’re thinking “I know what an `int` is”, you need to take this little quiz to find out for sure!

Have a look at this tiny AS3 app and think about what each `type()` line prints: `Number` or `int`?

```package { import flash.display.*; import flash.utils.*; import flash.text.*;   public class IntAndNumber extends Sprite { public function IntAndNumber() { var logger:TextField = new TextField(); logger.autoSize = TextFieldAutoSize.LEFT; addChild(logger); function type(name:String, val:*): void { logger.appendText(name + ": " + describeType(val).@name + "\n"); }   var i:int = 2; var n:Number = 2.3; var ni:Number = 2;   type("1", 1); type("1.0", 1.0); type("1.00000000001", 1.00000000001); type("1.000000000001", 1.000000000001); type("1.0000000000001", 1.0000000000001); type("1.00000000000001", 1.00000000000001); type("1.000000000000001", 1.000000000000001); type("1.0000000000000001", 1.0000000000000001);   type("i", i); type("n", n); type("ni", ni);   type("1+1", 1+1); type("i+1", i+1); type("n+1", n+1); type("ni+1", ni+1);   type("1.0+1.0", 1.0+1.0); type("i+1.0", i+1.0); type("n+1.0", n+1.0); type("ni+1.0", ni+1.0);   type("i+i", i+i); type("i+n", i+n); type("i+ni", i+ni); type("n+ni", n+ni); } } }```

Now see how many you got correct:

```1: int 1.0: int 1.00000000001: Number 1.000000000001: Number 1.0000000000001: Number 1.00000000000001: Number 1.000000000000001: Number 1.0000000000000001: int   i: int n: Number ni: int   1+1: int i+1: int n+1: Number ni+1: int   1.0+1.0: int i+1.0: int n+1.0: Number ni+1.0: int   i+i: int i+n: Number i+ni: int n+ni: Number```

Did you get them all? I suspect that many programmers will be thrown for a loop by these common misconceptions:

• A `Number` variable is actually an `int` if its value is a whole number
• Adding `.0` to a literal does not make it a `Number`
• Adding two `int` values does not result in a `Number` that must be casted back when used as an `Array` index
• Literal floating-point values can be silently converted to `int`: beware!

As you use `Number` and `int` in your AS3 apps, keep these behaviors in mind. If you find you’ve forgotten one of the more subtle points, the above should serve as a handy reference.

Know any more oddities about `Number` and `int`? Leave a comment!