Forum: Ruby Trouble migrating formula from JavaScript to Ruby

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
3504745159d79c585e4f7df8df76aa10?d=identicon&s=25 Ingo Weiss (ingoweiss)
on 2006-04-27 12:07

I am trying (unsuccessfully) to migrate a formula (for calculating
distances between lat/lng positions) from JavaScript to Ruby:

dlng = p2_lng - p1_lng
dlat = p2_lat - p1_lat
a = (sin(dlat/2))^2 + cos(p1_lat) * cos(p2_lat) * (sin(dlon/2))^2
c = 2 * atan2( sqrt(a), sqrt(1-a) )
distance = R * c (where R is the radius of the Earth)

dlng = p2_lng - p1_lng
dlat = p2_lat - p1_lat
a = (Math.sin(dlat/2))**2 + Math.cos(p1_lat) * Math.cos(p2_lat) *
c = 2 * Math.atan2( Math.sqrt(a), Math.sqrt(1-a) )
distance = 6373 * c #(radius of the Earth: 6373km

Any idea why the Ruby one returns incorrect numbers?

Ingo Weiss
D8fb06dfc08a477ecb0a76ffdbff3475?d=identicon&s=25 Chiaro Scuro (chiaroscuro)
on 2006-04-27 12:23
(Received via mailing list)
is it possible that you need to make numbers explicitly float? eg: 2 -->
This topic is locked and can not be replied to.