Pod numerem documentation jest dostępny zakres $end
. I tak jest przez większość czasu, ale gdy zarówno $end
jak i $end
i $step
są spławiane, brakuje ostatniej wartości. Dlaczego?Dlaczego zakres() nie jest uwzględniany, gdy jest podany w zakresie zmiennoprzecinkowym i interwałach?
print_r(range(1, 13, 1));
print_r(range(1, 13, 0.1));
print_r(range(0.1, 1.3, 0.1));
wyjściowa:
Array
(
[0] => 1
[1] => 2
// ...
[11] => 12
[12] => 13
)
Array
(
[0] => 0.1
[1] => 0.2
// ...
[119] => 12.9
[120] => 13
)
Array
(
[0] => 0.1
[1] => 0.2
// ...
[10] => 1.1
[11] => 1.2
// 12 => 1.3 is missing
)
Interesujące. Może błąd w PHP 7? –
Wartość zmiennoprzecinkowa jest przybliżona. Kiedy inkrementujesz o "0.1", nie zawsze trafisz dokładnie na koniec. – Barmar
Tak, wydaje się być PHP7 https://3v4l.org/kp1Fv – AbraCadaver