Hier ist mein Code:acos (1) gibt NAN in einigen Bedingungen
<?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
Wie Sie aus den Kommentaren sehen kann, $dist
gleich 1
nach der Berechnung, aber wenn ich acos()
anwenden es gibt NAN
.
Wenn ich versuche, es manuell zu replizieren, funktioniert es ganz gut:
$x = 1;
$x = acos($x);
var_dump($x); // returns 0 as expected
Was hier vor sich geht und wie kann ich es beheben?
Here's the same code in einer Online-Shell, so können Sie sehen, dass es tatsächlich diese Werte zurückgibt.
Interessant. Gibt es einen Grund, warum 'var_export()' den Wert genauer anzeigt als 'var_dump()'? –