CGPoint uses float (32bit) datatypes (at least on iOS6).
From the headers:
CGPointMake(CGFloat x, CGFloat y) ...
with
typedef CGFLOAT_TYPE CGFloat;
and
# define CGFLOAT_TYPE float
So this results in my test code:
CGPoint testPoint1 = CGPointMake(2341.2345, 1350046324.1234);
CGPoint testPoint2 = CGPointMake(2341.2345f, 1350046324.1234f);
double d = 1350046324.1234;
float f = 1350046324.1234;
NSLog(@"%f %f %f %f", testPoint1.y, testPoint2.y, d, f);
printing to the log:
1350046336.000000 1350046336.000000 1350046324.123400 1350046336.000000
So you just left the range of numbers where single precision floats are good enough.
Thats all.
BTW.: I did think CGFloat is double before I stumbled upon your question.