Так в данном случай мы тоже получим прирост производительности. Почему бы и нет?
Вид для печати
>_>
<_<
Я просто оставлю это здесь:
PHP код:
stock GetNumberOfDigits(number)
{
if (number < 100_000)
{
if (number < 100)
return 1 + _:(number >= 10);
if (number < 10_000)
return 3 + _:(number >= 1_000);
return 5;
}
if (number < 10_000_000)
return 6 + _:(number >= 1_000_000);
if (number < 1_000_000_000)
return 8 + _:(number >= 100_000_000);
return 10;
}
Не против, только лучше обнови его ещё раз. В моём коде, равно как и в коде DeimoS'а, не учитывались отрицательные числа.
Исправленная версия:
Тест производительности (в вариант DeimoS'а я тоже добавил проверку на отрицательные числа):PHP код:
stock GetNumberOfDigits(number)
{ // by Daniel_Cortez \\ pro-pawn.ru
if (number < 0)
number = -number;
if (number < 100_000)
{
if (number < 100)
return 1 + _:(number >= 10);
if (number < 10_000)
return 3 + _:(number >= 1_000);
return 5;
}
if (number < 10_000_000)
return 6 + _:(number >= 1_000_000);
if (number < 1_000_000_000)
return 8 + _:(number >= 100_000_000);
return 10;
}
Что скажете насчет такого варианта:
PHP код:
stock GetCountsOfDigits(number)
{
new counts = 0;
if(number < 0)
number = -number;
while(number != 0) {
counts++;
number /= 10;
}
return counts;
}