Function Haversine has correct value in debugger but in cell it has the same value as Haversine2.
Is this a known bug?
Public Function Haversine(lat1 As Double, long1 As Double, lat2 As Double, long2 As Double) As Double
Dim temp As Double
Dim temp1 As Double
Dim temp2 As Double
Dim temp3 As Double
Dim temp4 As Double
temp1 = Math.Cos(WorksheetFunction.radians(90 - lat1)) * Math.Cos(WorksheetFunction.radians(90 - lat2))
temp2 = Math.Sin(WorksheetFunction.radians(90 - lat1)) * Math.Sin(WorksheetFunction.radians(90 - lat2)) * Math.Cos(WorksheetFunction.radians(long1 - long2))
temp3 = WorksheetFunction.Acos(temp1 + temp2)
temp4 = temp3 * 6371# * 1000#
Haversine = temp4
End Function
Public Function Haversine2(lat1 As Double, long1 As Double, lat2 As Double, long2 As Double) As Single
Dim temp As Double
Dim temp1 As Double
Dim temp2 As Double
Dim temp3 As Double
Dim temp4 As Double
temp1 = Math.Cos(WorksheetFunction.radians(90 - lat1)) * Math.Cos(WorksheetFunction.radians(90 - lat2))
temp2 = Math.Sin(WorksheetFunction.radians(90 - lat1)) * Math.Sin(WorksheetFunction.radians(90 - lat2)) * Math.Cos(WorksheetFunction.radians(long1 - long2))
temp3 = WorksheetFunction.Acos(temp1 + temp2)
temp4 = temp3 * 6371# * 1000#
Haversine2 = temp4
End Function
Public Sub Call_it()
Dim x As Double
Dim y As Double
x = Haversine(38.32936982, -104.7080829, 38.329384, -104.708088)
y = Haversine2(38.32936982, -104.7080829, 38.329384, -104.708088)
x = x
End Sub
Is this a known bug?
Public Function Haversine(lat1 As Double, long1 As Double, lat2 As Double, long2 As Double) As Double
Dim temp As Double
Dim temp1 As Double
Dim temp2 As Double
Dim temp3 As Double
Dim temp4 As Double
temp1 = Math.Cos(WorksheetFunction.radians(90 - lat1)) * Math.Cos(WorksheetFunction.radians(90 - lat2))
temp2 = Math.Sin(WorksheetFunction.radians(90 - lat1)) * Math.Sin(WorksheetFunction.radians(90 - lat2)) * Math.Cos(WorksheetFunction.radians(long1 - long2))
temp3 = WorksheetFunction.Acos(temp1 + temp2)
temp4 = temp3 * 6371# * 1000#
Haversine = temp4
End Function
Public Function Haversine2(lat1 As Double, long1 As Double, lat2 As Double, long2 As Double) As Single
Dim temp As Double
Dim temp1 As Double
Dim temp2 As Double
Dim temp3 As Double
Dim temp4 As Double
temp1 = Math.Cos(WorksheetFunction.radians(90 - lat1)) * Math.Cos(WorksheetFunction.radians(90 - lat2))
temp2 = Math.Sin(WorksheetFunction.radians(90 - lat1)) * Math.Sin(WorksheetFunction.radians(90 - lat2)) * Math.Cos(WorksheetFunction.radians(long1 - long2))
temp3 = WorksheetFunction.Acos(temp1 + temp2)
temp4 = temp3 * 6371# * 1000#
Haversine2 = temp4
End Function
Public Sub Call_it()
Dim x As Double
Dim y As Double
x = Haversine(38.32936982, -104.7080829, 38.329384, -104.708088)
y = Haversine2(38.32936982, -104.7080829, 38.329384, -104.708088)
x = x
End Sub
Last edited: