Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] liczba mieszana do naturalnej
.radex
post
Post #1





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
ikioloak
post
Post #2





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

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


Nie mozesz skorzystac z floor(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował ikioloak 12.06.2006, 20:43:51
Go to the top of the page
+Quote Post
.radex
post
Post #3





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


hm... to też dobry pomysł, raczej użyje round(); (podobna funkcja)
Go to the top of the page
+Quote Post
em1X
post
Post #4





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


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.
Go to the top of the page
+Quote Post
seaquest
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

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


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.
Go to the top of the page
+Quote Post
ikioloak
post
Post #6





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

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


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. ?>
Go to the top of the page
+Quote Post
Solitary
post
Post #7





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.08.2002
Skąd: Bydgoszcz

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


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...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 00:31