@yadscreech

Программа не выводит то, что нужно?

Вообщем для себя придумал задачу, считать кол-во определённых цифр в числе, в данном случае кол-во цифр 5, в числе 12233344445555, программа работает до числа 5, после него выдает не правильный ответ, попробовал вывести число $a для проверки выдает это: 1.2233344445556E+26, также обрубал число до 1223334444555, при запросе вывода цифры 5 выводит 0, хз в чем проблема, прошу помочь и чуть обьяснить.

<?php

  $a = 122333444455556666667777777;
  $a1 = $a;
  $b = 5;
  $c = 0;

  echo $a,'<br>';

  while ($a > 0) {
    if ($b == ($a % 10)) {
      $c = $c + 1;
      $a = floor($a / 10);
    }
     else {
      $a = floor($a / 10);
    };
   };

   echo 'Число ', $b, ' встречается в числе ', $a1, ', ', $c, ' раз(а)';
?>
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@eternalfire
а просто substr_count, не?

$a = 122333444455556666667777777;
$b = 5;

echo $a,'<br>';
echo 'Число ', $b, ' встречается в числе ', $a, ', ', substr_count($a, $b), ' раз(а)';


а то что echo $a печатает 1.2233344445556E+26 это потому что в 32битной сборке php целые числа должны находиться в пределах от -2,147,483,648 до 2 147 483 647
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы