I need to store GPS coordinates in a database. I've heard that floats are less accurate than decimals. Is that true? If so, what reason is there to ever use floats?
Since Earth equatorial circumference is around 40000 km and longitude spans 360 degrees, it follows that near the equator 1 degrees is equivalent to about 110 km.
Thus:
However, the closer you move to the Poles, the smaller the lengths of the parallels becomes.
For example near Paris, which has a latitude of 48 degrees, 1 degree is equivalent to cos(48) * 110 = 74 km
.
Thus:
So, field of type DECIMAL(10,7)
would be enough to satisfy you rather precise.
If you want 100% accuracy with your decimals, then multiply by 10**n(where n is your desired precision), and store as integer.
Float objects represent inexact real numbers using the native architecture's double-precision floating point representation.
See:
http://www.ruby-doc.org/core-1.9.3/Float.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With