Здравствуйте, уважаемые.
Планируется работа с postgresql. Библиотека psycopg2 умеет работать с типом NUMERIC? Нужна точность при операциях обновления и выборке с группировкой. У кого есть опыт подскажите пожалуйста.
MaratDОпыт чтения документации? У меня, вот Adaptation of Python values to SQL types
У кого есть опыт подскажите пожалуйста.
MaratD
Я спрашивал про другое.
MaratD
Не надо будет снова переводить данные в decimal?
MaratDНикому оно не должно. Каждый тип занимает в памяти строго определенное количество байт. Поэтому при операциях с большими целыми, у вас внезапно может случиться казузс. Например, мы считаем 32700 * 3 / 3 и по идее, чисто математически, вы должны получить 32700. Но если для хранения чисел мы используем ячейки по два байта, то результат промежуточной операции 32700 * 3 должен занять четыре байта. Что получим в результате? Да что угодно, зависит от реализацции, как именно компьютер обработает переполнение. С нецелыми числами еще все хуже, потому что дроби бывают бесконечными и записать их в любое количество памяти нельзя, например результат операции 1/3 никогда не будет точным. Для того, чтобы избежать недоразумений при банковских и других точных математических операциях используют специальный двоично-десятичный тип. Вот тот самый decimal про который говорили выше.
Хотя, если сложить, должно 7894.853
MaratDЗначит вы использовыали неправильный тип данных.
В sqlite3 были случаи
MaratDpsycopg2 ничего не суммирует. Это библиотека для отправки и получения запросов в/из СУБД. Суммировать будет СУБД. К питону вопросы СУБД не имеют никакого отношения, если вы не верно спроектируете схему базы данных, ни питон, ни psycopg2 ни кто бы то ни было другой не будут иметь к этому никакого отношения.
psycopg2 так же суммирует numeric