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

    +157

    1. 1
    2. 2
    float floor ( float $value )
    Возврашает ближайшее целое число, округляя value в меньшую сторону.

    > float
    > Возврашает ближайшее целое число
    > Возвращаемое значение функции floor() по прежнему типа float потому что диапазон значений float обычно больше, чем у integer.

    когда мне айдешка подсветила, что я в качестве ключа массива подставляю что-то не то, я начал прихуевать

    http://php.net/manual/ru/function.floor.php

    Запостил: Fike, 10 Февраля 2015

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

    • // c++
           double floor (double x);
            float floor (float x);
      long double floor (long double x);

      http://www.cplusplus.com/reference/cmath/floor/
      Всё тлен, мы проиграли эту математику :(
      Ответить
      • Почему? В математике операции округления и взятия целой части немного отдельные.
        Ответить
        • > Почему?
          Ну да... В математике ещё и числа - просто числа, все целые одновременно действительные, а тут надо бороться с представлениями.
          Ответить
          • Ну все равно результат округления - рациональное число, потому как ведь не указано до какого знака оно происходит.
            Ответить
    • А в чём говно-то? Что должна вернуть функция для 1.056e109? В PHP целые произвольной точности уже завезли?
      Я вижу только косяк в доке: ближайшее целое число, округляя в меньшую сторону - явное противоречие. Правильней Возвращает максимальное целое число, меньшее value
      Ответить
      • >Возвращает максимальное целое число, меньшее value
        так запутаней.
        Ответить
      • > меньшее value
        Меньше либо равное!
        Ответить
      • максимальное целое число, не больше, чем value

        А я бы оставил "ближайшее". Если оно ближайшее из тех, что не больше value, то противоречий нет. Василий правильно заметил, что "максимальное" только запутывает.
        Ответить
        • ок, ближайшее целое, меньшее либо равное value - хорошо.
          Точная верхняя грань множества целых, меньших либо равных value
          Ответить
      • ну, вообще я не ожидал, что на сях и плюсах будет идентичный вывод, но PHP в таких ситуациях всегда делал шаг в сторону предсказуемости.
        Ответить
    • В пхп есть типы???
      Ладно дока, но как быть с кодом в проекте?
      Ответить
      • типки
        Ответить
      • В рантайме то типы есть. Как и в питоне и в жс.
        Ответить
        • Скажем точнее "как в жс".
          В питоне типы при конвертации ругаются и кидают эксцепшены.

          А по теме треда, ну в x87 FPU выполни округление через FRNDINT. Результат ведь будет у тебя в st0. Который никакой не целый
          Так и тут.
          Rounds the source value in the ST(0) register to the nearest integral value, depending on the current rounding mode
          Ответить
          • Ты такой классный, когда не спамишь...
            Ответить
            • Будет время обязательно исправлю сей недочёт.
              Еще есть пара идей для бредогенератора.
              Ответить
          • Скажем еще точнее – как в ЭКМАСкрипте.
            Ответить
      • Более того, там даже тайп-хинтинг есть. Недоделанный, правда, как и всё в пыхе, но всё же.
        Ответить
        • в пыхе очень хорошо сделано echo
          Ответить
          • Ага, и ещё die(). То-то похапешники их так любят.
            Ответить
            • Да die сделали просто офигенно. не то что в ваших си
              Ответить
              • Эхо не производит эхо, а die() не убывает пых. Кругом вранье.
                Ответить
                • зато можно пафосное do or die!
                  Ответить
                • Будто кресты лучше: std::move не производит движений, а void * означает совсем не пустоту.
                  Ответить
                  • Да вообще гады. std::move ничего не двигает, std::forward ничего не продвигает.
                    Ответить
                    • А std::remove ничего не удаляет... Ложь повсюду.
                      Ответить
    • Функция возвращает ближайший полученный результат.
      Ответить

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