1. 1C / Говнокод #19200

    −96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // возвращает "количество полных и неполных рублей"
    // Параметры:
    //	Сумма - число
    // Возвращаемое значение:
    //  число, равное ближайшему целому "сверху"
    Функция ЦелМаксимальное(Сумма) Экспорт
    	Возврат ?(Цел(Сумма) = Сумма, Сумма, Цел(Сумма) + 1);
    	
    КонецФункции // ЦелМаксимальное()

    Изобретаем велосипед округление с избытком вместе с разработчиками типовых конфигураций 1С.
    Обнаружено в:
    ЗУП 2.5.95.1
    БП 1.6.8.3

    Запостил: CMblCL, 18 Декабря 2015

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

    • На самом деле не самый плохой вариант реализации, учитывая, что стандартная функция Окр не имеет режимов округления в большую или меньшую сторону.
      Ответить
      • Аналогов floor/ceil нет разве?
        Ответить
      • Окр(Сумма + 0.5) не?
        Ответить
        • Окр(Сумма + 0.5, 0, РежимОкругления.Окр15как10)
          Вот так, чтобы целые числа не увеличивались на единицу
          Ответить
          • Ну вариант "говнокод" читается сразу, а этот, конечно, правильный, но пару секунд приходится посмотреть. +0,5 - лишние и надуманные преобразования. ИМХО, "говнокод" не так уж и плох.
            Ответить

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