а еще припоминаю поучительный анекдот про проггера банковской системы, который округлял дробные центы не "по-бухгалтерски" а всегда вниз, и эти остаточки переводил на отдельный счет. как обнаружили мошенничество? этот счет был зареган на условного Ярослава Ярославовича Ярославина, и в какой-то момент (довольно поздно кстати, прошло несколько лет уже и чел собрал на этом счету уже несколько млн. долл) кто-то просто догадался отсортировать список взкладчиков по-алфавиту) было в 60-х годах, во времена кобола с тех пор именно для финансовых расчетов в первую очередь, а вовсе не для науки, во всех языках поддерживатеся тип double

Комментарии: 96

  1. Vga

    финансы в дабле не считаются. они считаются в фиксед-пойнте

    • Ponytale

      видимо тогда считались

      • Vga

        а пруф у тебя есть, что даблы для финансов придумали? звучит сомнительно

        • Ponytale

          погугли. эту историю прочитал давно где уже не помню

          • Serge

            Насколько я знаю, финансы считаются до 4 знака за запятую, остальное нетрудовой доход банка

            • Ponytale

              точно не так. там гауссово округление используется, при котором в среднем банку ничего не перепадает но это сейчас так

  2. Vladimir

    А я ждал "... и тут в банк приходит настоящий Ярослав Ярославович Ярославин, с документами, подтверждающими личность, и хочет открыть счет, а ему и говорят..."

    • Serge

      Моя фамилия Итого...

      • Karboflex

        Первый делают на барометре или микрофоне второй нуу в таком варианте это какаянибудь проволка у которой сопротивление замеряют

  3. Tiny

    Floating point для финансов жопа. Не используют

    • Karboflex

      Дабл вобще хз когда и зачем придумали ) один фиг без дибы фортрана он бесполезен

      • Vga

        > One of the first programming languages to provide single- and double-precision floating-point data types was Fortran. Когда это на фортране финансы считали

        • Ponytale

          прям с первых версий в фортране даблы были? в коболе не раньше ли

          • Karboflex

            Вы ещё уточните стандарт флоатингпоинта

          • Vga

            тут написано не "с первых версий", а "один из первых языков где появились"

            • Tiny

              Вообще толковая работа с флоатами сама по себе жопа. Я когда с вычислительной геометрией работал этого говна наелся

              • Karboflex

                Для этого надо было брать либу фортрана и просто писать прокладку на свой язык)

                • Tiny

                  Причем тут это?

                  • Karboflex

                    Потому что там на выходе точность остается до последнего знака а не выходит погулять уже на первой же операции когда переменная оказывается меньше машинной эпсилон для другой

                • Kir

                  Вот кстати да, Фортран до сих пор используется, даже пару моих преподавателей делают расчеты (часть) на нем. Говорит, когда у тебя матрицы порядка сотен тысяч и по строкам, и по столбцам, лучше на фортране

                  • Ponytale

                    они просто не умеют ни во что другое вот и говорят так. ну и либы на фортране математические не доконца переведены на другие языки, как я слышал. например, LINPACK

                    • Karboflex

                      Не самая лучшая ссылка по теме но с телефона тока такая)

            • Ponytale

              пасебо я читаю английский

              • Karboflex

                А то знаете ли там четные округляются вверх нечетные вниз Или наоборот)

              • Vga

                тогда переформулируй вопрос, сейчас он выглядит бессмысленно

                • Ponytale

                  а меня нет вопросов только путь)

                  • Tiny

                    Я про накопление ошибок и прочее. Говнецо всплывет на любом языке

          • Vga

            судя по вики, до 2002 года в коболе флоата не было ВООБЩЕ А значит и в финансовом мире, а дабл - научный формат

            • Karboflex

              А современный стандарт флоатов появился только в 74 году

              • Vga

                Там не было никакого

                • Karboflex

                  До этого кто во что горазд

                  • Vga

                    использовался как раз формат с фиксированным количеством знаков после запятой - а конкретно двумя десятичными

                    • Karboflex

                      То что мы сейчас считаем флоатом на самом деле стандарт интела но такто были и другие

              • Vga

                Если ты про IEEE-754, то вообще в 1985

                • Karboflex

                  Сцук подвела память) Сейчас вобще хотят заменнить на позит

                  • Vga

                    на что?

                    • Karboflex

                      Есть даже несколько микроконтроллеров с этим типом флоатов Доугой формат флоата

                      • Vga

                        и в чем его достоинства? и как он называется гуглибельно?

                        • Karboflex

                          32 бита позита покрывает динамический диапазон дабла ieee

                          • Kir

                            Но вот компилятор, который у нас использовался, бесил тем, что усрись, но строку делай короткой

                            • Vga

                              обычно не хватает точности, а не диапазона флоата. а если оно покрывает больший диапазон - то точность неибежно ниже иначе на перфокарту не влазит?

                              • Karboflex

                                Там пошалили с запаковаой

                              • Kir

                                Тем временем советский ученый с терменвоксом, который гораздо сложнее: Да нее, переключателей 0/1 на пульте не хватало уже

                                • Karboflex

                                  И тем что в обычном флоате не использует около 30% всех вариантов

            • Ponytale

              https://bit.listserv.ibm-main.narkive.com/STTPw150/cobol-floating-point-revisited : As many of you know, IBM Enterprise COBOL supports only single- and double-precision IBM hexadecimal floating-point (HFP) data types. In particular, it does not support extended-precision HFP or any of single-, double-, or extended-precision IEEE binary floating-point (BFP) values. https://en.wikipedia.org/wiki/IBM_hexadecimal_floating-point : Hexadecimal floating point (now called HFP by IBM) is a format for encoding floating-point numbers first introduced on the IBM System/360 computers, and supported on subsequent machines based on that architecture,[1][2][3] as well as machines which were intended to be application-compatible with System/360. https://en.wikipedia.org/wiki/IBM_System/360 : The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. Мне дальше копать в сторону кобола и двойной арифметики уже лень)

              • Vga

                первое обсуждение как-то поновее 2002-го...

                • Karboflex

                  https://youtu.be/wFuoEGVLQqo

                  • Ponytale

                    а можно очень вкратце: какие основные проблемы IEEE 754 решает этот новый формат, зачем он нам?

                    • Karboflex

                      Там нет нан Можно от балды наговнокодитьи и не пожрать каках)

                      • Ponytale

                        спорное утверждение

                        • Karboflex

                          Ну ничто не бесплатно дается там машинное эпсилон на числовой последовательности то растет то убывае ( у фортранистов тут инсульт )

                      • Vga

                        а разве NaR чем-то от NaN отличается?

                        • Karboflex

                          Нан около 30% всех возможных вариантов занимает

                          • Vga

                            довольно расточительно, да

                            • Karboflex

                              Вобще по большому счету это вызывает проблемы только в машинном обучении

              • Vga

                https://medium.com/the-technical-archaeologist/is-cobol-holding-you-hostage-with-math-5498c0eb428b еще один источник, утверждающий что кобол использует именно десятичный фиксед-пойнт

                • Ponytale

                  хорошая статья, и правда ведь в современных актуальных ЯП нету базового типа с фиксированной запятой, причем с настраиваемым кол-вом разрядов в целой и дробной части. удивительно, почему мир пошел куда-то снова в сторону от очевидного

                  • Karboflex

                    Там подцепил нан в середине а двльше вся сетка не валеквате

                  • Vga

                    ну в дельфи есть тип конкретно для денег ну на позитах нар подцепишь и что изменится? он же генерится как результат некорректной операции, типа 0/0 а так - для не-финансовых вычислений флоат обычно удобнее и он поддержан в железе

                    • Karboflex

                      Просто в насыщение уходит

                      • Vga

                        флоаты тоже в насыщение уходят, +-inf, не?

                        • Karboflex

                          Там нет пути назад

                    • Ponytale

                      приведенный в статье пример с рекурсией мгновенно ломает это утверждение)

                      • Vga

                        NaN это именно сигнал недопустимой операции - деление на ноль, корень из минуса, etc

                      • Vga

                        она специально подобрана чтобы флоат ломать

                        • Karboflex

                          Если поймал нан даьше всё будет нан

                          • Ponytale

                            т.е. да, удобнее и поддержан. но немного ограничен. точнее, почти всегда ограничен и нужно всегда дополнительно считать погрешности

                          • Vga

                            а позит из нара позволяет что-то осмысленное посчитать?

                            • Karboflex

                              Как обработчик настроишь стандарта то ещё нет

                        • Ponytale

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

                          • Vga

                            у флоатов есть известные недостатки, но видимо плюсы в большинстве случаев перевешивают

                            • Ponytale

                              хотя лол - они же из округлений флоатов и получились)) главный "плюс": это возможность прогать недопрограммистам в промышленных масштабах)

                              • Vga

                                фиксед с собой тащит приколы целочисленной арифметики, которая тоже иногда выносит мозги, емнип Да и научный формат числа кстати тоже флоат не только. на фикседе не получишь одновременно разрешение флоата и динамический диапазон флоата в том же количестве бит ну или точнее просто динамический диапазон

                                • Ponytale

                                  плавающая "фиксированная" запятая - не альтернатива ли?

                                  • Vga

                                    Это как?

                                    • Karboflex

                                      Даже если показатель степени запаковать 1 бит да потеряешь)

                                      • Aleksey

                                        Самая лучшая шутка флоат состоит в том что не факт что при условии а=b=5; (int16_t)(a) будет равно (float)(b) даже после приведения типов

                                    • Ponytale

                                      а сорян не туда подумалось

                                      • Vga

                                        у тебя полчилось "вровень выступает!", да)

                                        • Karboflex

                                          Можно ведь собрать структуру в одной переменной храним число в другой положение запятой

                                          • Vga

                                            ну луа как-то работает при целочисленных вычислениях в пределах разряядности мантиссы и получаем что? правильно, флоат!

                                            • Karboflex

                                              Не совсем ведь можно использовать какой хочешь показатель

                                              • Vga

                                                а какая разница? недостатки флоата растут из его идеи. а не реализации иеее754

                                                • Aleksey

                                                  Ага особенно если там каким то макаром присутствует геометрия и придется вычислять тангенсы ;) сразу все к чертям летит и опять да здравствует флоат

                                          • Ponytale

                                            придумать такой формат, который числа вида 10000000.00000001 на лету перепаковывает, убирая одинаковые промежуточные нули, что-то типа кодирования Шеннона использовать. и в котором гарантируется n значащих цифр, не важно где они находятся: в начале, середине или конце числа. сорян, в порядке полуночного бреда) это не шутка, это жизнь да, это и имел в виду под плавающей фиксированной запятой но это не решает проблему чисел вида 10000.00001 где очень большая целая часть и есть маленькая дробная

                                            • Karboflex

                                              Там есть проблемы поинтереснее например 0.1 не ложится во флоат изза показателя степени)

                                              • Vga

                                                флоат наиболее универсален и иммеет известные недостатки. Когда они критичны тогда и используется что-то нестандартное

                                                • Karboflex

                                                  Например инкримент)

                                  • Karboflex

                                    А где хранить информацию о том насколько запятая уплыла)?

                              • Kir

                                Шутки шутками, а снижение порога вхождения в IT и снижение стоимости персональных машинок резко бустанули всю отрасль. Кто держался за супермощные мейнфреймы/вычислительные залы те резко уступили долю рынка или пошли на дно (даже словарь моей клавиатуры сейчас не узнал это слово, мейнфрейм). Но за PHP прощать не стоит

Не нашли ответ?

Вам также может быть интересно