Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> php kilejność działań, Dlaczego PHP nie umie liczyć?
mimol
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


Witam, niedawno miałem problem związany z tym, że PHP nie umie liczyć.
Mógłby ktoś wytłumaczyć mi na czym polega problem?
Wiem, że to ma związek z floating point i precyzją, ale to są PROSTE działania, max 3 miejsca po przecinku...
Załóżmy że mam taki kod
  1. $price = 24.5;
  2. $discountPrice = 7.35;
  3. $discount = $price - $discountPrice;
  4.  
  5.  
  6. $offerValue = 100 * $discount / $price;
  7. var_dump($offerValue); // zwraca ładnie 70
  8. var_dump((int)$offerValue); // zwraca 69 tutaj magia...
  9.  
  10. //idzemy więc dalej
  11. $offerValue = 100 * ($discount / $price);
  12. var_dump((int)$offerValue); // zwraca 70, zmiana kolejności wykonywania działań,


Proszę o podanie jakiegoś powodu dlaczego
  1. //discount / price = 0.7
  2. echo (int)(100 * ($discount / $price)); //70
  3. echo (int)(100 * $discount / $price); //69
  4. echo (int)($discount / $price * 100); //70


ew jak wyświetlić prawdziwą wartość $discount / $price (powinno być 0.7) a pewnie jest (6.9999999999999999999),
Oczywiście poradziłem sobie używając bcmath

Ten post edytował mimol 31.12.2013, 19:10:34
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 23:02