Django - 如何让用户输入科学计数法的小数?
我希望用户能够输入标准的小数值,比如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.']
你可能想要提交一个错误报告。