Wyciągam sumę z DB, która jest wartością dziesiętną. Próbuję użyć tej wartości w wyniku JSONDziesiętny do JSON
json.dumps({ 'sum': amount }) #where amount is my Decimal
Django nie można serializować Decimal
. Mogę przekonwertować go na ciąg, ale chciałbym numeryczny typ w JSON. Jeśli spróbuję przekonwertować go na float
, otrzymam więcej niż 2 miejsca po przecinku.
Co musi się stać, jeśli to możliwe, aby uzyskać wynik podobny do następującego?
{ 'sum': 500.50 }
nie wiem zbyt wiele o Django, ale jeśli potrzebujesz dwóch miejsc po przecinku zawsze i to nie jest możliwe, aby zrobić dokładnie to, co chcesz, abyś pomnożył przez 100 i używał go jako liczby całkowitej. – cambraca
JSON jest zdefiniowany tylko jako przeplot o podwójnej precyzji dla liczb. Co Cię kupuje, aby zachować swoje liczby jako liczby dziesiętne? – Gabe
Nie potrzebuję liczb, które mają być dziesiętne, nigdy nie będą tak duże. Właśnie to otrzymuję z DB, ponieważ są to wartości pieniężne. Nie byłem zachwycony z użycia int * 100, a spacje dają mi więcej niż dwa miejsca po przecinku. Miałem tylko nadzieję, że pojawi się bardziej eleganckie rozwiązanie ... – Justin