1. Objective C / Говнокод #14216

    −90

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    -(BOOL)isGetRest:(CGFloat)page {
        NSString *floatToString = [NSString stringWithFormat:@"%.2f",page];
        NSArray *sepArray = [floatToString componentsSeparatedByString:@"."];
        CGFloat rest = [[sepArray lastObject] floatValue];
        if(rest>0.0){
                 return YES;
        }
        else{
               return NO;
       }
    }

    А вы еще спрашиваете нужно ли программистам знать математику?

    Запостил: Psionic, 11 Декабря 2013

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

    • Objective C совсем не знаю, может кто-нибудь знающий пояснит в чем проблема?
      Ответить
      • я тоже не знаю, но похоже, что тут проверяют, равна ли дробная часть float-а нулю с точностью до сотых. Для этого форматируют в строку, отрезают всё после точки, конвертируют обратно во float и сравнивают с 0.0
        Ответить
        • Кстати благодаря длинным и понятным именам функций этот код вполне читается даже не знающими Objective C, такими как мы.
          Ответить
          • я вот только не понимаю, как тут дела с памятью. GC вроде в обжц нету...
            Ответить
            • C памятью все секюрно - созданные строки авторелизны, они занесутся в локальный пул и после вызова функции их уничтожат.
              Ответить
      • Я тоже совсем не знаю ObjectiveC, но говно в том, что дробную часть числа получают с помощью преобразования в строку и разрезания по точке :)
        Ответить
    • Такое Го*но даже понять сложно, человеку не математика нужна, а супер способности, чтобы в будущем не делать таких ошибок))
      Ответить

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