Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ograniczenia z liczbami, czy co?;p
Diablos
post
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


Z niewyjasnionych przyczyn napisalem sobie skrypt obliczajacy silnie podanej liczby.

  1. <form method="post" action="silnia.php">
  2. <input type="text" name="liczba">
  3. <input type="submit" value="oblicz silnie">
  4. </form>
  5.  
  6. <?php
  7.  
  8.  
  9. if ( isset($_POST['liczba']))
  10. {
  11.  
  12. $liczba = $_POST['liczba'];
  13.  
  14. $silnia = '1';
  15.  
  16. for ( $i = '1'; $i <= $liczba; $i++ )
  17.  {
  18. $silnia *= $i;
  19.  } 
  20.  
  21. echo 'Silnia z liczby ' . $liczba . ' wynosi ' . $silnia;
  22.  
  23. }
  24.  
  25. ?>  



Ogolnie wszystko dziala spox, walek jest jednak wtedy gdy wpisze liczbe powyzej 170. Wynikiem jest 1.#INF. Co to ma znaczyc? ;] Jakies ograniczenia liczb czy co?(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jakies ograniczenia liczb czy co
No stary, pewnie ze tak. PRzeciez typy liczb na kompie mają swoje ograniczenia, a silnia 170 to jest bardzooooo duza liczba wychodzaca poza te ograniczenia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


J.w.

Integer ma zakres do ok. 2mld
Potem php przechodzi na liczby zmiennoprzecinkowe: a #INF to po prostu nieskonczonosc, taki wynik dostajesz gdy przekroczysz zakres liczb zmiennoprzecinkowych, czyli cos ok. 2^2048 (dla podwojnej precyzji)
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: 22.08.2025 - 17:52