這裏是我的代碼:ACOS(1)返回NAN在某些情況下
<?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
正如您從註釋中看到,$dist
是計算後等於1
,但是當我申請acos()
返回NAN
。
如果我嘗試手動複製它,它工作得很好:
$x = 1;
$x = acos($x);
var_dump($x); // returns 0 as expected
這是怎麼回事,我該如何解決?
Here's the same code在一個在線shell中,所以你可以看到它實際上返回了這些值。
有趣。 var_export()'比var_dump()'更精確地顯示值是否有原因? –