That’s … very wrong.
First, read this: What Every Computer Scientist Should Know About Floating-Point Arithmetic
Second, realize that any integer can be a fixed-precision decimal number. You can say “the lowest 10 bits are fractional bits” and now your integer has a resolution slightly better than 1/1000th of a whole unit. You will have to do some adjustment for magnitude when doing multiply/divide, but it’s pretty straightforward.
int64 for the “higher level” coordinate would make sense for a few reasons, including supporting equal precision no matter how far from the “origin” you are. For some kinds of games/simulations, this is highly useful!
The main drawback with fixed precision values is that you need to put away a fair number of bits for the decimal part to support the smallest possible velocity at the highest possible framerate without quantization artifacts. float64 gives you that “for free” as long as you stay “close enough” to the origin, but, really, you have the same precision problem, just with 54 bits of mantissa (including the implicit leading 1) instead of 64 bits, so it actually hits at smaller radii.