<?php $xml = simplexml_load_file('2010.xml'); foreach ($xml->trk->trkseg->trkpt as $data) { $dasd= 3-$data['lat']; $n++; } ?>
Pobiera on dane z pliku xml:
<?xml version="1.0" encoding="utf-8"?><gpx version="1.0" creator="SportyPal" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/0" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd"> <trk> <name>SportyPalTrack</name> <desc>The track description</desc> <trkseg> <trkpt lat="52.26737256" lon="5.61004397"> <ele>0</ele> <time>2135-11-26T04:46:18Z</time> </trkpt> <trkpt lat="52.26736105" lon="5.61003357"> <ele>0</ele> <time>2135-11-26T04:46:23Z</time> </trkpt> <trkpt lat="52.26735853" lon="5.61003708"> <ele>0</ele> <time>2135-11-26T04:46:27Z</time> </trkpt> </trkseg> </trk> </gpx>
Wszystko działa pięknie i ładnie oprócz odejmowania (zmienna $dasd w skrypcie, wynik jest zaokrąglany do całości podczas gdy ja potrzebuję go z jak największą dokładnością. Byłbym wdzięczny jeśli ktoś mógłby mnie oświecić w jaki sposób zmusić PHP do większego posłuszeństwa w tej kwestii?
EDIT
teraz zauważyłem że nie jest to do końca zaokrąglenie - przy odjęciu od trzech 54.971205 powinno wyjść raczej -52 podczas gdy rezultatem jest 51, czyli wygląda na to że coś zjada przecinki.
http://azalol.cba.pl/test.php
tutaj widać o co mi chodzi, po zastosowaniu funkcji printf('%0.10f', $dasd); skrypt zwraca wartość odejmowania -51.0000000000 co jest niezgodne z prawdą.