PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

DecimalField konwertuje zero na 0E-10

Natknąłem się również na ten problem i dowiedziałem się, że właściwie wszystko działa poprawnie. W Pythonie, jeśli faktycznie zdefiniujesz coś takiego Decimal("0.0000000000") zobaczysz to w konsoli:

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

W mojej sytuacji konwertowałem z SQLite3 backend do PostgreSQL do produkcji. Wszystko działało dobrze w SQLite, ponieważ nie pokazuje on (ani nie przechowuje) wszystkich cyfr dziesiętnych. Więc jeśli wstawisz 0 w polu numeru SQLite, a następnie wybierz go, otrzymasz 0 .

Ale jeśli wstawisz 0 w PostgreSQL pole numeryczne spowoduje wypełnienie zerem miejsca dziesiętnego i wstawi 0.0000000000 . Więc kiedy Python umieści to w Decimal, zobaczysz Decimal("0E-10") .

AKTUALIZACJA – naprawiona w Django 1.8




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak usunąć dane z wielu tabel?

  2. kiedy się rozłączyć, a kiedy zakończyć klienta lub pulę pg

  3. Jak napisać sprzężenie z tymi nietypowymi kryteriami dopasowania?

  4. Niestandardowe ZAMÓWIENIE WEDŁUG Wyjaśnienia

  5. postgres. Przekroczono limit głębokości stosu plpgsql