1. PHP / Говнокод #1302

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 01 Июля 2009

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

    • ээ.. а как подругому?
      Ответить
    • if ($int > 1000000000){
      ...

      и тд
      Ответить
    • Мильярд страниц? Крута
      Ответить
    • #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).'&nbsp;'.$lbl);
       };
      ?>
      Ответить
    • 1) нужно еще для случая (< 1000) просто число вернуть
      2) сравнивать лучше '>=', a не '>'
      Ответить
    • #4, но делить придется лишь раз
      Ответить
    • лол, иногда так делаю)
      Ответить
    • Там elseif надо ставить, а так всегдя тысячи будет возвращать
      Ответить
    • $n = 1565463456003;

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

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

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

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