1. Python / Говнокод #28367

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    >>> import math
    >>> n = math.factorial(1559)
    >>> n
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: Exceeds the limit (4300) for integer string conversion

    https://github.com/sympy/sympy/issues/24033

    Какой багфикс )))

    Запостил: 3_dar, 12 Сентября 2022

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

    • Оно, конечно, понятно, что ломать совместимость нехорошо... но просто любопытно, для чего такие числа могут использоваться.
      Ответить
      • А сколько атомов во вселенной?
        Ответить
      • Криптография какая-нибудь. Там числа по 4 килобита -- это нормальная ситуация (тут по-умолчанию ограничение на 14 килобит).

        Правда маловероятно, что кто-то в десятичном виде их читает. А на хексы лимита нет.
        Ответить
        • ты про ключи?

          Я вообще не понимаю на кой хуй числа представлять десятично

          Десятичный формат нужен для интерфейса с человеком

          Человек не умеет понимать числа больше 10-15 знаков

          Нахуя вот это всё?
          Ответить
          • Ну как... сначала сделали сколько влезет, потому что зачем ограничивать? И чем именно? А потом случайно сломали - ну и проблемка, потому что оно, конечно, нахуя, но вдруг уже где-то случайно используется, а теперь сломается. Мог же кто-нибудь написать от балды f.write(str(key)) и ладно работает, тесты проходят.
            Ответить
            • Ну хоть крутилку оставили для тех кому мало.
              Ответить
              • Закрутил твою крутилку морским узлоhm, проверишь?
                Ответить
              • Крутилку - это
                #define MAX_INT_TO_STR_DIGITS 4300
                при сборке python.exe?
                Ответить
    • Тебе грустно, бро?
      Ответить

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