Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z operacjami matematycznymmi
Forum PHP.pl > Forum > PHP
new_user
Witam

Mam następujący problem. Mam dwie zmienne $aktualny_funt oraz $ksiazka->cenaDet.
Zmienna $aktualny_funt jest pobierana z pliku http://www.nbp.pl/kursy/xml/LastA.xml w nastepujacy sposob:

  1. $kursy = simplexml_load_file('http://www.nbp.pl/kursy/xml/LastA.xml');
  2. foreach ($kursy->pozycja as $pozycja) {
  3. if ($pozycja->kod_waluty == 'GBP') {
  4. $pozycja->kurs_sredni = preg_replace("/(,)/", ".", $pozycja->kurs_sredni);
  5. $aktualny_funt = number_format(("$pozycja->kurs_sredni"), 4, ',', '.');
  6. $aktualny_funt = preg_replace("/(,)/", ".", $aktualny_funt);
  7. }
  8. }


a zmienna $ksiazka->cenaDet jest pobierana z innego pliku w podany sposob:

  1. foreach ($xml_pelny->books->book as $ksiazka) {
  2. $pozycja->kurs_sredni;
  3. }


do zmiennej w wyniku operacji zostaly przypisane nastepujace dane
  1. $pozycja->kurs_sredni) = 4.3293;
  2. $aktualny_funt = 22.50;


inie wiem czemu wykonujac obliczenia mnozenia na tych zmiennych w taki sposob:
  1. echo $aktualny_funt."*".$ksiazka->cenaDet." = ".$aktualny_funt*$ksiazka->cenaDet."<br />";


wynik mi wychodzi taki
4.3293*22.50 = 95.2446
a wedlug kalkulatora jest taki
4.3293*22.50 = 97.40925
natomiast przypisujac recnie wartosci do zmiennych tak

  1. $a=4.3293;
  2. $b=22.50;
  3. echo $a*$b;


wynik wychodzi poprawny. Co robie nie tak?
Smertius
Nie zaokrąglasz gdzieś po drodze $aktualny_funt?

4.3293*22 = 95.2446

EDIT:
Nie lepiej użyć str_replace(",",".",$liczba)? Po co pchać się w wyrażenia regularne?
new_user
Dzieki za rade z str_replace rzeczywiscie lepiej i nie wiem czemu tego nie wykorzystalem tylko wyrazenia regularne.

Niestety nigdzie nie jest zaokraglane tak jak uzyskuje z xml tak mam czyli tak 4.3293 a po drodze jedyne operacje jakie wykonuje na tej zmiennej to
w osobnym foreach $cena_ksiazki = $ksiazka->cenaDet/$aktualny_funt;
i w osobnym foreach $cena_detal = $ceny->attributes()->detal/$aktualny_funt;

To co podalem w poprzednim poscie i teraz to wszsytko co jest wykonywane na tej zmiennej i nie wiem czemu mi tak oblicza ucina mi i to dosc sporo.

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.