sql >> Base de Datos >  >> RDS >> PostgreSQL

DecimalField convierte cero a 0E-10

También me encontré con este problema y descubrí que en realidad todo funciona correctamente. En Python, si realmente defines algo como esto Decimal("0.0000000000") verás esto en la consola:

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

En mi situación, estaba convirtiendo desde SQLite3 back-end para PostgreSQL para la producción Todo funcionaba bien en SQLite, porque no muestra (o almacena) explícitamente todos los dígitos decimales. Entonces, si inserta 0 en un campo de número de SQLite y luego selecciónelo, obtendrá 0 .

Pero si inserta 0 en un PostgreSQL campo numérico hará un relleno de cero en el decimal e insertará 0.0000000000 . Entonces, cuando Python pone esto en un decimal, verás Decimal("0E-10") .

ACTUALIZACIÓN:corregido en Django 1.8