Django - 如何让用户输入科学计数法的小数?

2 投票
1 回答
7708 浏览
提问于 2025-04-16 15:12

我希望用户能够输入标准的小数值,比如1.51,或者以科学计数法输入值,比如4.08E+13。

我在我的模型中设置了一个小数字段,但当我尝试输入上面的例子时,系统给我发了一个验证消息:

“确保小数位数不超过3位。”

顺便提一下:

我注意到Python已经支持这种格式:

>>> from decimal import Decimal
>>> print Decimal("4.08E+13")
4.08E+13

所以也许在Django中设置这个功能不会太难?

1 个回答

2

这看起来像是Django的一个错误,DecimalField.validate()在处理正指数时出错了:

>>> from django.forms import DecimalField
>>> f = DecimalField(max_digits=10, decimal_places=1)
>>> f.validate(Decimal('1E+2'))
Traceback (most recent call last):
...
ValidationError: [u'Ensure that there are no more than 1 decimal places.']

你可能想要提交一个错误报告

撰写回答