1. SQL / Говнокод #9689

    −138

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    select 20.0 / -2.0 / 5.0 * 3.0
    -16.666666
    
    select 20.0 / (-2.0) / 5.0 * 3.0
    -6.00000

    SQL-Server как калькулятор

    Запостил: wecanstoptrain, 16 Марта 2012

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

    • Типичная практика кстати.
      Для тех недолинуксоидов, которые не осилили проинсталлить калькулятор.
      Ответить
      • мелкомягкие говнокодеры криво в парсере поддержку натуральных дробей реализовали. Верхнее выражение по их мнению следует читать как:
        (20.0 / (-2.0 / 5.0)) * 3.0
        Ответить
        • Натуральные дроби? Однако. И кому пришло в голову.

          Продвинутый аналог 2+2*2.
          Ответить
        • >мелкомягкие говнокодеры
          Проверил в sybase, откуда они слизали свой MsSql - бага нет. В обоих случаях: -6.
          Ответить
        • Проблемы только с отрицательными числами.
          В Oracle проверил - такой проблемы нет.
          Задам вопрос на Microsoft S.W.I.T., когда они будут читать лекцию про SQL Denali и SQL Azure.
          Ответить
          • Он типа при виде минуса пытается распарсить то, что дальше, по правилам приоритета?
            Ответить
          • Спросил. Отвечает MVP Microsoft.
            Приоритет бинарного и унарного минуса менять не собираются, да и вообще мы тут оказывается проблему на пустом месте раздули, т.к. практического применения таким вычислениям нет. Так-то. Почему сменили логику по сравнению с сибейзом? Никто не помнит ибо изменения были сделаны еще до 2000 года.
            Ответить
        • писец, нашел причину, натуральные дроби не при чем.
          http://msdn.microsoft.com/en-us/library/ms190276.aspx
          унарные минус и плюс имеют тот же приоритет, что и бинарные плюс и минус, т.е. ниже, чем деление и умножение...
          Ответить
          • У ms всё не как у людей.
            Ответить
            • Дык проблема скорее в том, что "-" традиционно перегружен: и унарная и бинарные операции.

              В хаскеле, например, тоже часто нужно "оскоблять". В ocaml, емнип, унарный минус отдельный "~".
              Ответить
              • проблема в том, что в предке mssql все работает так, как ожидается.
                http://govnokod.ru/9689#comment132692
                Ответить
    • ИНФИКСОПРОБЛЕМЫ
      Надо для всех функций использовать префиксную или для всех постфиксную форму, и не надо никакого говна типа там приоритетов и срачей, что считается раньше.
      Ответить
      • получается, что все языки, кроме лиспа и форта - ГОВНО
        Ответить
      • что считается раньше, типа там приоритетов и срачей и не надо никакого говна, префиксную или для всех постфиксную форму для всех функций использовать надо
        Ответить
      • с унарным минусом точно всё ок будет?
        Ответить
    • $ bc
      bc 1.06.95
      Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
      This is free software with ABSOLUTELY NO WARRANTY.
      For details type `warranty'. 
      
      1+2
      3
      13123*32
      419936


      хуйня война. главное маневры.
      кстати реально быстрее его чем калькуляторы и прочее.
      Ответить
      • а пифон тогда на что? не программировать же на нем...
        bc херов тем, что так и не догадались выводить приглашение при работе в режиме REPL
        Ответить
        • Вы ничего не понимаете в куркуляторах.
          Консоль бровзеров всегда под рукой. Кому нужен пухтон если есть жабаскрипт?
          Ответить
          • Консоль под рукой, но ну её в жопу. Без with Math {} КО будет скрежетать зубами от досады.
            Ответить
    • в World Of Warcraft можно считать синусы и косинусы на луа и многое другое
      Ответить
      • А я всё думал, что на нём нак люди зависают, а всё дело в луа и синусах...
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • Маткабоска, как же твоя аве похожа на мартовского зайца из алисы.
      Ответить

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