PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

DecimalField converte zero in 0E-10

Ho anche riscontrato questo problema e ho scoperto che in realtà tutto funziona correttamente. In Python se in realtà definisci qualcosa come questo Decimal("0.0000000000") vedrai questo nella console:

>>> Decimal("0.0000000000")
Decimal('0E-10')

Nella mia situazione stavo convertendo da SQLite3 backend su PostgreSQL per la produzione. Tutto funzionava bene in SQLite, perché non mostra (o memorizza) esplicitamente tutte le cifre decimali. Quindi se inserisci 0 in un campo numerico SQLite e quindi selezionalo, otterrai 0 .

Ma se inserisci 0 in un PostgreSQL campo numerico riempirà a zero il decimale e inserirà 0.0000000000 . Quindi, quando Python lo inserisce in un decimale vedrai Decimal("0E-10") .

AGGIORNAMENTO - risolto in Django 1.8