'51.9606649' ist NICHT numerisch
Bayer in Düsseldorf
- php
Hallo,
ich bekomme aus einer GeocodierungsAPI diverse Zahlen zB. auch Lat und Lng. Ich habe mich die ganze Zeit gefragt warum ich diese Zahlen nicht Addieren kann.
Daher habe ich mir eine einfache IF Abfrage gebaut:
if (is_numeric($lat)) {
echo "'{$lat}' ist numerisch", PHP_EOL;
} else {
echo "'{$lat}' ist NICHT numerisch", PHP_EOL;
}
Hierbei kam heraus der Wert ist "nicht" numerisch. Auch ein Trim brachte keine Besserung. Hat jemand da Ideen?
Danke euer Düsseldorfer - Bayer
$lat = (float) $lat;
vielleicht so?
Gruß
VielleichT-Rex
oder Versuchs mal mit $lat = floatval($lat);
oder Versuchs mal mit
$lat = floatval($lat);
floatval() und das Typecasting mittels (float) machen exakt dasselbe - wenn das eine nicht funktioniert wird das andere ebenfalls nicht funktionieren:
https://github.com/php/php-src/blob/642721b38a9c5ebf336c81027c0dafd6f9246bd6/ext/standard/type.c
(float) Zeile 105
floatval() Zeile 166
Beides führt nur convert_to_double() aus - und das konvertiert so ziemlich alles, auch Objekte:
https://github.com/php/php-src/blob/7713b8c2ac2d8fbacaf897ff0c0a202a7b7abf49/Zend/zend_operators.c
Zeile 429
floatval() und das Typecasting mittels (float) machen exakt dasselbe - wenn das eine nicht funktioniert wird das andere ebenfalls nicht funktionieren:
ich kann nur aus meiner Erfahrung sprechen. Ich hatte schon den Fall das (float) nicht funktionierte aber floatval() schon.
floatval() und das Typecasting mittels (float) machen exakt dasselbe - wenn das eine nicht funktioniert wird das andere ebenfalls nicht funktionieren:
ich kann nur aus meiner Erfahrung sprechen. Ich hatte schon den Fall das (float) nicht funktionierte aber floatval() schon.
Das ist aufgrund des PHP-Sourcescodes (anhand der aktuellen Version) nicht nachvollziehbar - afaik war das aber schon immer so.
Tach!
floatval() und das Typecasting mittels (float) machen exakt dasselbe - wenn das eine nicht funktioniert wird das andere ebenfalls nicht funktionieren:
https://github.com/php/php-src/blob/642721b38a9c5ebf336c81027c0dafd6f9246bd6/ext/standard/type.c
(float) Zeile 105
floatval() Zeile 166Beides führt nur convert_to_double() aus - und das konvertiert so ziemlich alles, auch Objekte:
Ja, aber das erste ist nicht der Typecast sondern die Funktion settype(). Ob da eine Verbindung zum Typecast besteht, kann ich in der Datei nicht erkennen. Besteht sie und wenn ja wo?
dedlfix.
Tach!
Hierbei kam heraus der Wert ist "nicht" numerisch. Auch ein Trim brachte keine Besserung. Hat jemand da Ideen?
Nicht nachvollziehbar. Was gibt var_dump($lat) aus?
dedlfix.
ich bekomme aus einer GeocodierungsAPI diverse Zahlen zB. auch Lat und Lng. Ich habe mich die ganze Zeit gefragt warum ich diese Zahlen nicht Addieren kann.
Die Antwort ist üblicherweise in XML und wenn du das mit SimpleXML z.B. abarbeitest, hast du eine latte kleiner Objekt und diese sind natürlich nicht numerisch - die musst du erst explizit nach float casten.