У меня очень большой DecimalField в одной из моих моделей.
class Price(models.Model):
min_value = models.DecimalField(max_digits=50, decimal_places=20)
Таким образом, в общем, это огромное количество, сохраняющее до 20 точек точности.
Кажется, все значения работают,кроме нуля, который есть.Допустим, я сериализовал это поле в объект json, используя следующее:
import json
from django.core.serializers.json import DjangoJSONEncoder
price = Price.objects.get(pk=1)
json = json.loads(json.dumps({
"min_value" : price.min_value,
}, cls=DjangoJSONEncoder))
Для большинства значений я получаю правильные десятичные числа в строковом формате.Однако, если min_value установлено в 0, я получаю что-то вроде этого: "0E-20"
Я почти уверен, что это означает 0.00000000000000000000
, или 20 нулей после точки.Однако я хотел бы получить его в обычном формате или в основном так: "0.00000000000000000000"
.
Как мне заставить DjangoJSONEncoder сделать это?Обратите внимание, я понимаю, что могу легко сделать это, используя строку «0E-20», взяв число после тире, выполнив цикл for много раз и сгенерировав строку, содержащую только нули.Но есть ли лучшее, более элегантное решение?