Почему мой цикл for с поплавковым шагом (0.1) не выполняет последнюю итерацию в PHP - любая версия?Почему для шага поплавка не выполняет последнюю итерацию?
Мой код теста:
$procents_list = [];
for($i = 0.5; $i <= 1.5; $i += 0.1)
{
$procents_list[] = $i;
}
print_r($procents_list);
Итерация от 5 до 15 с шагом 1 все ок. Почему это печать:
Array
(
[0] => 0.5
[1] => 0.6
[2] => 0.7
[3] => 0.8
[4] => 0.9
[5] => 1
[6] => 1.1
[7] => 1.2
[8] => 1.3
[9] => 1.4
)
[читать, учиться и внутренне переваривать] (https: // эн. wikipedia.org/wiki/Floating_point#Accuracy_problems) –
Также прочитайте [соответствующий раздел документов PHP] (http://www.php.net/manual/en/language.types.float.php), в котором объясняется, как сравнивать с плавающей точкой значения –
0,5000008 0,6000008 0.7000008 0,8000008 0,9000008 1.0000008 1.1000008 1.2000008 1.3000008 1.4000008 – qRoC