"PHP" / Говнокод #1302 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
function roundPagesCount($int)
{
	if ($int / 1000000000 > 1) {
		return round($int/1000000000). ' млрд';
	}

	if ($int / 1000000 > 1) {
		return round($int/1000000). ' млн';
	}

	if ($int / 1000 > 1) {
		return round($int/1000). ' тыс';
	}

}

без слов))))

Запостил: guest guest, (Updated )

Комментарии (11) RSS

  • #2 а вывести как?
    if ($int > 1000000000 >) {
    return round($int/1000000000). ' млрд';
    }
    всё-равно так прийдётся делать. хотя можно оптимизировать.
    $res=round($int/1000000000);
    if ($res > ) {
    return $res. ' млрд';
    } и тд.
    Ответить
  • Darquan0:
    #4 -- извращенцы среди нас!!!
    ...хотя можно было ещё круче извратиться и написать что-то в таком духе:
    <?php
    function roundPagesCount($int)
     {
      $arr = array(
     'млрд.' => 1000000000,
     'млн.' => 1000000,
     'тыс.' => 1000
    );
      foreach($arr as $lbl => $val)
        if($int > $val)
          return strval(round($int/$val).' '.$lbl);
     };
    ?>
    Ответить
  • 1) нужно еще для случая (< 1000) просто число вернуть
    2) сравнивать лучше '>=', a не '>'
    Ответить
  • Там elseif надо ставить, а так всегдя тысячи будет возвращать
    Ответить
  • $n = 1565463456003;

    $dec = Array("","тыс.","млн.","млрд.");

    $i = 0;
    while ($n > 1000 && ++$i < count($dec)) $n /= 1000;

    echo round($n)." ".$dec[$i-1]."\n";
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8