Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak formatowac bardzo duże liczby? i jak uniknąć INF zamiast wyniku
Forum PHP.pl > Forum > PHP
jolam
Witam serdecznie, jak mogłabym zamienić liczbę z E na końcu (3.3217428096E+12) na taką normalną? Zważyłam, że czasami dostaje zamiast wyniku INF. Co to znaczy jak mogłabym się go ustrzec?

pozdrawiam Jola
Zyx
Nie zamienisz. Dlaczego? Bo skończona przestrzeń na przechowywanie liczby mieści tylko skończoną liczbę kombinacji, więc nie da się na niej zapisać dowolnego elementu ze zbioru nieskończonego. Precyzja zapisu liczb całkowitych w PHP zależy od platformy, przy przekroczeniu zakresu interpreter konwertuje liczbę na zmiennoprzecinkową, której zakres też jest skończony. Polecam lekturę o sposobie reprezentacji liczb w komputerach, np.

http://pl.wikipedia.org/wiki/Liczba_zmiennoprzecinkowa

Tam jest wszystko dokładnie wyjaśnione.

Sposobów na poradzenie sobie z problemem jest kilka:

1. Nie robić obliczeń na dużych liczbach.
2. Używać specjalnych bibliotek do obliczeń na dużych liczbach, które dynamicznie dostosowują ich rozmiar do potrzeb za cenę znacznie obniżonej wydajności: http://docs.php.net/manual/en/intro.bc.php
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.