PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

DecimalField Wandelt Null in 0E-10 um

Ich bin auch auf dieses Problem gestoßen und habe festgestellt, dass eigentlich alles richtig funktioniert. Wenn Sie in Python tatsächlich so etwas wie dieses Decimal("0.0000000000") definieren Sie werden dies in der Konsole sehen:

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

In meiner Situation konvertierte ich von SQLite3 Backend zu PostgreSQL für die Produktion. In SQLite funktionierte alles einwandfrei, da nicht alle Dezimalziffern explizit angezeigt (oder gespeichert) wurden. Wenn Sie also 0 einfügen in ein SQLite-Zahlenfeld eingeben und es dann auswählen, erhalten Sie 0 .

Aber wenn Sie 0 einfügen in einem PostgreSQL numerischen Feld wird die Dezimalstelle mit Null gefüllt und 0.0000000000 eingefügt . Wenn Python dies also in eine Dezimalzahl einfügt, sehen Sie Decimal("0E-10") .

UPDATE - behoben in Django 1.8