1. Java / Говнокод #6821

    +76

    1. 1
    2. 2
    3. 3
    4. 4
    public static int toGrid(int val, int cell)
    {
    	   return val/cell*cell; // embracing eternity!
    }

    Запостил: dveyarangi, 02 Июня 2011

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

    • OMG!!
      Мерцанием было -1+1. Это-то что?
      Ответить
      • то было горизонтальное мерцание, это - вертикальное.
        на ноль что ли поделить...
        Ответить
    • return val - val % cell
      Ответить
      • public class Test {

        public static void main(String ... args)
        {
        long start, end;
        int size = 10;
        int j = 0;
        int i;

        int N = 10000;

        start = System.nanoTime();
        for(i = 0; i < N; i ++)
        j = i/size*size;

        end = System.nanoTime();
        System.out.println("time (div): " +(end-start) + " ns");

        start = System.nanoTime();
        for(i = 0; i < N; i ++)
        j = i - i % size;

        end = System.nanoTime();
        System.out.println("time (mod): " +(end-start) + " ns");
        }
        }

        ============================
        time (div): 193913 ns
        time (mod): 1156567 ns
        Ответить
        • Это не то же самое. Если val отрицательный, результат будет разным.
          Спать надо больше, сорри за провокацию :)
          Ответить
        • http://pastebin.com/zzPUAa9q

          time (mod): 22398544869 ns
          time (div): 22653125931 ns
          Ответить
    • придумал юзкейс: округление в меньшую сторону до определенной точности.

      У меня есть интернет-магазин. Мне хочется, чтобы на сайте цены отображались с точностью до 50 рублей, округление делаю в меньшую сторону (клиентов очень люблю). Т. е. если товар стоит 1463 р., на сайте отображается 1450 р. Вот тут-то метод toGrid мне очень пригодиться :)

      toGrid(1463, 50) => 1450
      Ответить
      • пригодиться?
        Ответить
        • я еще прошлой осенью предсказывал, что говнокод будут растаскивать по уютненьким проектикам
          Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

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