Here's my code:
<?php
$lat1 = 35.697959;
$lat2 = 35.697959;
$lon1 = 139.707085;
$lon2 = 139.707085;
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
var_dump($dist); // returns 1
$dist = acos($dist);
var_dump($dist); // returns NAN
As you can see from the comments, $dist
is equal to 1
after the calculation, but when I apply acos()
it returns NAN
.
If I try to replicate it manually, it works just fine:
$x = 1;
$x = acos($x);
var_dump($x); // returns 0 as expected
What's going on here and how can I fix it?
Here's the same code in an online shell, so you can see that it actually returns those values.