Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] liczba mieszana do naturalnej
Forum PHP.pl > Forum > Przedszkole
.radex
mam w zmiennej liczbę np. 11,05 i chcę ją zaokrąglić w dół ( do 11) więc używam coś takiego:
  1. <?php
  2. $var = 11.05 ;
  3.  
  4. list($varx, $niepotrzebne) = split("." , $var);
  5. ?>

i w varx nic nie ma bo kiedy robie
  1. <?php
  2. echo $varx ;
  3. ?>

nic nie pisze.

jakieś pomysły?
ikioloak
Nie mozesz skorzystac z floorquestionmark.gif
.radex
hm... to też dobry pomysł, raczej użyje round(); (podobna funkcja)
em1X
twój przykład jest dobry.. wystarczy uzyc explode" title="Zobacz w manualu php" target="_manual zamiast split" title="Zobacz w manualu php" target="_manual.
seaquest
Panowie chyba nie czytali o typach zmiennych i castach:

  1. <?php
  2.  
  3. $var = 11.05;
  4.  
  5. echo (int) $var;
  6.  
  7. ?>


Przy okazji przenoszę na przedszkole.
ikioloak
Mylisz sie Seaquest. Rzutowanie, mimo ze w tym przypadku sie sprawdzi, wcale nie sluzy do tego typu akcji. Odpal sobie prosty przyklad:
  1. <?php
  2. $x = 10203040500.3;
  3. print 'X:<br>';
  4. print '<br>(int)X:<br>';
  5. var_dump((int)$x);
  6. print '<br>floor(X):<br>';
  7. ?>
Solitary
ikioloak, seaquest się nie byli, rzutowanie z liczb zmiennoprzecinkowych do stałoprzecinkowej działa poprawnie, a Twój przykład dowodzi jedynie ograniczonego zakresu liczby integer (liczba przez Ciebie podana wychodzi poza zakres integer dla przypomnienia -2^31...2^31)

programując musisz zaplanować z jak dużymi liczbami ma pracować skrypt, wtedy możesz świadomie zdecydować, czy chcesz użyc floor() czy rzutowania typów

na marginesie, pamiętaj, że float też jest ograniczony...
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.