Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konwersja liczbowa w PHP
Forum PHP.pl > Forum > PHP
dragonsokol
Witam,
natknąłem się na dziwny problem w PHP, związany z konwersją stringa na liczbę pomnożoną o 100. Oto kod:
  1. $cena = "16.99";
  2.  
  3. $price = (int)($cena * 100);
  4. var_dump($cena);
  5. var_dump((float)$cena);
  6. ((float)$cena * 100)
  7. )
  8. );
  9. var_dump($price);
  10. var_dump((float)$cena * 100);


Output:
  1. string(5) "16.99"
  2. float(16.99)
  3. int(1698)
  4. int(1698)
  5. float(1699)

Dlaczego przy konwersji na int dostaję 1698 a nie 1699, tak jak powinno być? przy innych cenach działa OK.
rocktech.pl
Witam.

Cytat
So never trust floating number results to the last digit, and do not compare floating point numbers directly for equality. If higher precision is necessary, the arbitrary precision math functions and gmp functions are available.


Np. w PHP operator dzielenia rzutuję liczby na typ float. Wartość może być osadzona jako typ integer ale zostanie zaokrąglona w dół.

Zobacz tu:

  1. var_dump(((int)(1/2)) === 0);
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.