Number type acting whacky... storing incorrect number

Can someone please explain this…

var i:Number = 7059467160524343000;
trace(i);
i = 7059467160524343700;
trace(i);
i = 7059467160524343999;
trace(i);
i = 7059467160524344000;
trace(i);
i = 7059467160524344001;
trace(i);
i = 7059467160524344225;
trace(i);

OUTPUT:
7059467160524343000
7059467160524343000
7059467160524344000
7059467160524344000
7059467160524344000
7059467160524344000

Is this a bug? Max value for Number is set at
1.79769313486231e+308…

Thanks