django十进制格式字段的值不等于最大值
我的表格中有一个十进制字段,我想限制django十进制格式字段的值不等于最大值,django,django-forms,Django,Django Forms,我的表格中有一个十进制字段,我想限制最小值=0.1和最大值=99.99 purity_percent = forms.DecimalField(max_value=99.99, min_value=0.1, decimal_places=2) 但当我尝试输入值等于0.1或99.99时,我将不工作,我会得到这些错误 对于0.1:确保该值大于或等于0.1。 对于99.99:确保该值小于或等于99.99。 如何将那些也包含在限制中?浮动,如99.99,以二进制形式存储。许多可以用有限的十进制数字表示
最小值=0.1
和最大值=99.99
purity_percent = forms.DecimalField(max_value=99.99, min_value=0.1, decimal_places=2)
但当我尝试输入值等于0.1
或99.99
时,我将不工作,我会得到这些错误
对于0.1:确保该值大于或等于0.1。
对于99.99:确保该值小于或等于99.99。
如何将那些也包含在限制中?浮动,如
99.99
,以二进制形式存储。许多可以用有限的十进制数字表示的数字都是二进制的重复分数(参见许多其他问题)
特别是,文字99.99
更接近:
>>> "{:.15f}".format(99.99)
'99.989999999999995'
Python还有小数:
>>> from decimal import Decimal
>>> d = Decimal("99.99")
果不其然,小数点99.99大于浮点最大值99.99:
>>> d <= 99.99
False
谢谢。还有很好的解释。