2017-09-30 9 views
-1

Ich habe aktuelle Variable php:Wie ohne Präzision zu verlieren Dezimalwert trunkieren

$latlng = "<a href='http://www.google.com/maps/place/".$lat.",".$lng."/@".$lat.",".$lng.",".$zoom."' target='_blank'>Lat ".$lat." Lng ".$lng."</a>"; 

Echo Ausgang ist wie folgendes Beispiel:

Lat 39.959146953575164 Lng 16.380643111639415

ich es will gestutzt so am Ende, ich habe wollen folgendes Ergebnis:

Lat 39.959 Lng 16.380

Ich habe folgenden Code versucht, aber es schnitt nur letzten Teil:

$cut_string = substr($latlng,0,strpos($latlng,'</a>')-12); 
echo "$cut_string <br/>\r\n"; 

Lat 39.959146953575164 Lng 16.380

Dank

+1

Versuchen Sie 'Runde (16.380643111639415, 3);' –

+0

Siehe http://php.net/manual/en/function.sprintf.php Format als float in Zeichenfolge – Peter

Antwort

1

Ich glaube, ich verstehe Ihr Problem an.
Sie wollen den Link mit voller Präzision, aber einem leicht zu lesenden Linktext?

Dies sollte sein, was Sie brauchen:

$latlng = "<a href='http://www.google.com/maps/place/".$lat.",".$lng."/@".$lat.",".$lng.",".$zoom."' target='_blank'>Lat ".round($lat,3)." Lng ".round($lng,3)."</a>"; 

Wie Sie den Link sehen zu Google intakt ist aber der Text auf drei Dezimalstellen gerundet wird.

+0

Sie haben die richtige Lösung, danke – grigione

1

Sie round verwenden könnten, aber Sie werden verlieren Präzision. Wenn das funktioniert, dann

echo round(39.959082, 3); 

Aber mit substr, könnten Sie die Präzision beizubehalten.

$lat = "39.959082"; 
echo substr($lat,0,strrpos($lat,'.')+4); 

wird

39.959 
+0

ja, aber ich will Ausgabe Lat 39.959 Lng 16.380 nicht nur Lat 39.959 verknüpfbar – grigione

+0

@grigione das gleiche kann nicht für Lng getan werden? – Ravi

+0

ah ok, aber in diesem Modus verloren Link Genauigkeit, weil einige Dezimalstellen fehlen? – grigione

Verwandte Themen