我收到以下错误:
02/08 09:15:45>小数价格:0.00
02/08 09:15:45>小数价格=无
TypeError:无法将float转换为Decimal。首先将浮点数转换为字符串
这是我的代码:
s.price = Decimal("%.2f" % (float(request.data['subscription_price'])))
log('Decimal price: %s' % s.price)
if s.price == Decimal("0.00"):
s.price = None
log('Decimal price = None')
关于我做错了什么的任何想法?我试图通过“if s.price == Decimal(”0.00“)来避免在数据库中保存0.00:”......无济于事。
答案 0 :(得分:0)
如果你想将float number转换为带有两个小数位的Decimal,这就是工作代码:
import Decimal
In [10]: a = 7.3656
In [11]: Decimal(a).quantize(Decimal('.01'))
Out[11]: Decimal('7.37')
有关使用十进制数字的更多信息,请点击此处: http://docs.python.org/2/library/decimal.html
答案 1 :(得分:0)
if str(s.price) == str(Decimal("0.00")):
s.price = None
log('Decimal price = None')