Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z operacjami matematycznymmi
new_user
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 20.02.2007

Ostrzeżenie: (0%)
-----


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?

Ten post edytował new_user 29.03.2010, 12:48:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Smertius
post
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 31
Dołączył: 23.02.2009
Skąd: Sanok

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Smertius 29.03.2010, 17:35:47
Go to the top of the page
+Quote Post
new_user
post
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 20.02.2007

Ostrzeżenie: (0%)
-----


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.



Ten post edytował new_user 31.03.2010, 03:01:21
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 22:15