Кому должно? Вам? Мне? А, ведь, не работает. потому что round(9.5) вернет
2. Тогда уже floor(9.5).
| автор |
| что для компа проще посчитать скольо символов, или выполянть ряд мат операций... |
А давайте спросим????
<TABLE border="1">
<TR align="center">
<TD><B>№ п/п</B></TD>
<TD><B>log10</B></TD>
<TD><B>strlen</B></TD>
</TR>
<?php
function micro_t()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$tab = array();
define('UPTO', 10);
define('CIRCLE', 20);
for ($k = 0; $k < CIRCLE; $k++)
{
/**
* foreach
*/
$t_start = micro_t();
for ($j = 0; $j < UPTO; $j++)
{
log10(micro_t());
}
$tab[0][$k] = micro_t() - $t_start;
/**************************************
* strlen
*/
$t_start = micro_t();
for ($j = 0; $j < UPTO; $j++)
{
strlen(micro_t());
}
$tab[1][$k] = micro_t() - $t_start;
?>
<TR>
<TD><?php echo $k+1;?></TD>
<TD><?php echo $tab[0][$k];?></TD>
<TD><?php echo $tab[1][$k];?></TD>
</TR>
<?php
flush();
}
?>
<TR>
<TD>AVG</TD>
<TD><?php echo array_sum($tab[0])/CIRCLE;?></TD>
<TD><?php echo array_sum($tab[1])/CIRCLE;?></TD>
</TR>
</TABLE>| № п/п | log10 | strlen | | 1 | 0.00028610229492188 | 0.00051999092102051 | | 2 | 0.00027012825012207 | 0.00032782554626465 | | 3 | 0.00027704238891602 | 0.00032782554626465 | | 4 | 0.0059940814971924 | 0.00034308433532715 | | 5 | 0.00026202201843262 | 0.0003199577331543 | | 6 | 0.0002739429473877 | 0.00032305717468262 | | 7 | 0.00055789947509766 | 0.00032806396484375 | | 8 | 0.00025701522827148 | 0.00034809112548828 | | 9 | 0.00026082992553711 | 0.00052499771118164 | | 10 | 0.00025796890258789 | 0.00031805038452148 | | 11 | 0.00029587745666504 | 0.00041794776916504 | | 12 | 0.0002589225769043 | 0.0057840347290039 | | 13 | 0.00026893615722656 | 0.00044393539428711 | | 14 | 0.00026297569274902 | 0.00037288665771484 | | 15 | 0.00025701522827148 | 0.00031399726867676 | | 16 | 0.0003209114074707 | 0.00039505958557129 | | 17 | 0.00033688545227051 | 0.00040006637573242 | | 18 | 0.0003201961517334 | 0.00032591819763184 | | 19 | 0.00029802322387695 | 0.00044107437133789 | | 20 | 0.00043582916259766 | 0.00037407875061035 | | AVG | 0.00058763027191162 | 0.00064749717712402 |
|
Надеюсь, что это будет самое узкое место в вашем коде. Другой вопрос, что интервал у функции log10 - величина конечная. Но это уже другая история, тогда ни floor(), ни ceil() не решат задачу.
Еще раз говорю, что не надо решать подобные математические задачи строковыми функциями.
----------------------------------------
Артисты не приехали,
приехали цыгане