Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze przecinkami
Forum PHP.pl > Forum > Przedszkole
usiek00
Mam problem pobieram zawartosc pliku xml, simpleXML'em. Plik wyglada tak.

  1. <prices updated="2005-03-02 22:00:10.707">
  2. <book indeks=" " cena="0.0" vat="0"/>
  3. <book indeks="0000000000000" cena="0.0" vat="0"/>
  4. <book indeks="0000010000000" cena="0.2" vat="0"/>
  5. <book indeks="00000200000UT" cena="12.5" vat="22"/>
  6. <book indeks="00000300000UT" cena="125.0" vat="22"/>
  7. <book indeks="00100800100KS" cena="11.55" vat="0"/>
  8. <book indeks="00100900100KS" cena="13.09" vat="0"/>
  9. <book indeks="00101400100KS" cena="6.16" vat="22"/>
  10. <book indeks="00102200100KS" cena="15.4" vat="0"/>
  11. <book indeks="00103700100KS" cena="5.39" vat="0"/>
  12. </prices>


i wartosci wpisuje do bazy danych, ale chce przed wpisanie aby do ceny dodac vat, czyli robie cos takiego

  1. <?php
  2. $xml = simplexml_load_file('ceny_.xml');
  3.  
  4. foreach($xml -> book as $a){
  5.  
  6. if($a[vat]==7) $a[cena]=$a[cena]*1.07;
  7. if($a[vat]==22)
  8. {
  9. echo $a[cena].&#092;"<br>\";
  10. $c = $a[cena];  //jest wartosc 12.5
  11. $b = 1.22;
  12. $d= $c * $b;
  13. echo $d.&#092;"<br>\";  //na wyniku jest 14.64 a powinno byc 15.22
  14.  
  15. }
  16.  
  17.  mysql_query(&#092;"insert into book_cena (indeks, cena, vat) values ('$a[indeks]','$a[cena]','$a[vat]')\")
  18.  or die(&#092;"Eksport danych niemozliwy.\"); 
  19.  
  20. }
  21. echo &#092;"Eksport zakonczony\";
  22. ?>


on poprostu nieliczy mi wartosci po przecinku tylko same liczyby czyli np. 12 zamiast 12.5. Jak zrobilem przyklad na samych wartosciach ktore sobie sam podalem to wszystko bylo ok, a jak na w/w skrypcie to zle liczy.

Co moze byc tego przyczyna questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
nospor
Wpisalem twoj kod i mi policzyl dobrze

edit: byka moze masz w $a[cena]. Co to jest cena. Może powinno być :
$a['cena'] lub $a[$cena]
usiek00
czy tam jest byk, chyba nie bo jak wpisuje wartosci do bazy danych do sa tam dobre wartosci czyli z przecinkami tj. 12.5 , itd.

A jaka wartosc ci wypisał na ekranie 14.64 czy 15,25 questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?


Cena to wartosc z pliku xml

<book indeks="0000000000000" cena="0.0" vat="0"/>
nospor
15.25
ale mi chodzi o to że błędem jest odwoŁywanie się do do tablicy poprzez $a[cena]. Co to jest cena? Albo index cena to powinno być 'cena' albo zmienna cena to powinno być $cena
usiek00
Cena jest atrybutem.

A zmienilem na 'cena' i bylo tak samo.

Może to kwestia ustawien w systemie ? Nie mam pojecia a wiem ze umnie zle liczy sad.gif
kszychu
Cytat(usiek00 @ 2005-03-10 12:05:38)
Cena jest atrybutem.

W tym przypadku to indeksem tablicy.
A spróbuj to jawnie rzutować:
  1. <?php
  2. $c = (float)$a['cena']; 
  3. ?>
usiek00
Wielkie dzięki to było to.

$c = (float)$a['cena'];
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.