PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

DecimalField converte zero em 0E-10


Eu também me deparei com esse problema e descobri que, na verdade, tudo está funcionando corretamente. Em Python, se você realmente definir algo assim Decimal("0.0000000000") você verá isso no console:
>>> Decimal("0.0000000000")
Decimal('0E-10')

Na minha situação eu estava convertendo do SQLite3 backend para PostgreSQL para produção. Tudo estava funcionando bem no SQLite, porque ele não mostra (ou armazena) explicitamente todos os dígitos decimais. Então, se você inserir 0 em um campo de número SQLite e, em seguida, selecione-o, você obterá 0 .

Mas se você inserir 0 em um PostgreSQL campo numérico ele fará um preenchimento zero no decimal e inserirá 0.0000000000 . Então, quando o Python colocar isso em um Decimal, você verá Decimal("0E-10") .

ATUALIZAÇÃO - corrigida no Django 1.8