我在Flask应用程序中为WTFform的DecimalField提供的输入正在转换为字符串。我需要它是一个int或float才能执行任何操作 数学运算?
任何帮助将不胜感激。 TIA
答案 0 :(得分:0)
wtforms.DecimalField
产生一个decimal.Decimal
实例。
>>> import wtforms
>>> from webob.multidict import MultiDict
>>> class F(wtforms.Form):
... foo = wtforms.DecimalField()
...
>>> f = F(formdata=MultiDict(foo=3.45))
>>> val = f.data['foo']
>>> val
Decimal('3.45000000000000017763568394002504646778106689453125')
>>> type(val)
<class 'decimal.Decimal'>
该对象可用于计算:
>>> val * 4
Decimal('13.80000000000000071054273576')
>>> val + 2
Decimal('5.450000000000000177635683940')
或可以使用相应的内置函数转换为float或int
>>> float(val)
3.45
>>> int(val)
3