Liczby zmiennoprzecinkowe (float)Podręcznik PHPPoprzedniRozdział 7. Typy danychNastępnyLiczby zmiennoprzecinkowe (float)
Liczby zmiennoprzecinkowe (typ float, double lub liczby rzeczywiste)
mogą być zapisane przy użyciu dowolnej z poniższych składni:
$a = 1.234; $a = 1.2e3; $a = 7E-10;
Maksymalna wielkość liczby zmiennoprzecinkowej jest zależna od platformy
operacyjnej, zwykle jest to ~1.8e308, przy precyzji 14 liczb dziesiętnych
po przecinku (jest to 64 bitowy format IEEE).
Precyzja liczb zmiennoprzecinkowych
Jest oczywiste, że nawet proste ułamki dziesiętne, takie jak
0.1 lub 0.7, nie mogą zostać
skonwertowane na ich dwójkowe odpowiedniki bez niewielkiej straty
dokładności. Może to powodować pewne problemy: na przykład wyrażenie
floor((0.1+0.7)*10) zwykle ma wartość
7, zamiast oczekiwanej 8, gdyż
wewnętrzna reprezentacja tego wartości to liczba
7.9999999999....
Powiązane jest to z faktem, że dla pewnych ułamków zwykłych nie istnieje
skończone rozwinięcie dziesiętne. Na przykład 1/3 w
reprezentacji dziesiętnej ma wartość 0.3333333. . ..
Dlatego nigdy nie należy wierzyć liczbom zmiennoprzecinkowym do ostatniej
cyfry i nigdy nie należy wykonywać operacji porównania na stwierdzenie
równości. Do operacji na liczbach zmiennoprzecinkowych o naprawdę dużej
precyzji należy użyć biblioteki BCMath lub funkcji
gmp.
PoprzedniSpis treściNastępnyLiczby całkowite (integer)Początek rozdziałuŁańcuchy znaków (string)