• ### Announcements

#### Archived

This topic is now archived and is closed to further replies.

# Float precision

## 6 posts in this topic

Hi! I''m making a space simulator game and have one problem implementing solar system. The problem is, that my space craft can have coordinates bigger that 150,000,000,000 (distance from Earth to Sun or from planet to planet in meters ). If I place this number in single precision float, I will have problems with spacecraft movement. Spacecraft can be moved by 0.01 meter in each frame, and if I add 0.01 to 150E+9, I will have same number - 150E+9 (float precision limitation). Maybe somone have expirience in space simulators and know how to solve this problem. DLife
0

##### Share on other sites
Break up your solar system into different sectors.
Coordinates will be smaller to manage, and your system will be smaller to manage to
0

##### Share on other sites
Why use meters? That''s basically irrelevant in the grand scheme of things.

That''d take 15,000,000,000,000 frames to cross the solar system. At even 60fps thats almost 300,000 days of real-time just to cross the solar system moving at 0.01 meter (centameter)a frame.
0

##### Share on other sites
The 0.01 m/frame speed will be used as minimal spacecraft
speed. Maximal speed can be 100 m/frame for example. Also
spacecraft can do small hyperspace jumps.
Anyway difference between solar sytem dimensions and
spacecraft dimensions is very big.

DLife
0

##### Share on other sites
Would it be a problem to make your program use doubles instead of floats? Perhaps this would fix the precision problem.

Regards

Starfall
0

##### Share on other sites
To be perfectly anal, using doubles will provide the precision for your universe. A double has 53 bits of precision, or about 15-16 digits of precision.

MSN
0

##### Share on other sites
Even if you use doubles, you should probably consider using center-of-mass trees for you data structures anyway. That simplifies considerations such as gravity, etc. At the same time it gives you better precision within your localized areas.

That way a fleet in orbit around the earth wouldn''t have each get a direction vector that includes the earth''s orbit around the sun, you just move the earth-mass system around the sun, and move the ships around the earth relative to each other.
0